Mehrere Datensätze per Formular ändern

br3doxx

Mitglied
Hallo,

ich bräuchte dringend eine kurze Hilfe.

Wie ist es möglich, ein Formular, welches mit Daten aus der Datenbank gefüllt ist, zu ändern und somit sämtliche Daten neu zu speichern

Formular sieht folgendermaßen aus:

User1 | Zeit
User2 | Zeit
User3 | zeit
usw.

Die Zeiten sind in einem Dropdown und sollen für alle bzw. einige User geändert werden.
Ich könnte jetzt in jeder Zeile eine Button machen um den Datensatz einzeln zu speichern, das will ich aber nicht. Es soll am Ende der Tabelle, dann ein Button sein um alle Daten zu speichern.

kann mir da jemand helfen?

HTML:
echo "<table style=\"width: 100%\">";
   echo "<tr>";
      echo "<td>Name</td>";
      echo "<td>Zeit</td>";
   echo "</tr>";
$sql_mittag = "SELECT username, zeit FROM users"; 
$db_erg_mittag = mysql_query( $sql_mittag ); 
if ( ! $db_erg_mittag ) { 
die('Ungültige Abfrage: ' . mysql_error()); 
}
while ($zeile = mysql_fetch_array( $db_erg_mittag, MYSQL_ASSOC)){  
        $user = $zeile['username'];
	$zeit = $zeile['zeit'];
echo "<form method=\"post\">";
	echo "<tr>";
		echo "<td><input type=\"text\" name=\"user\" readonly value=\"".$user."\"></td>";
		echo "<td>";
                      echo "<select name=\"zeit]\">";
                                echo "<option>09:00</option>";
				echo "<option>09:15</option>";
				echo "<option>09:30</option>";
				echo "<option>09:45</option>";
                       echo "</select>";
		echo "</td>";
	echo "</tr>";	
}
	echo "<tr>";
		echo "<td colspan=\"2\"><input type=\"submit\" name=\"submit\"></td>";
	echo "</tr>";
echo "</form>";
 
Wenn du die Feldernamen mit [] machst, solltes du je einen Array für zeit und einer für User bekommen

PHP:
		echo '<td><input type="text" name="user[]" readonly value="'.$user.'"></td>';
		echo '<td>';
                      echo '<select name="zeit[]">';
 
Wenn du die Feldernamen mit [] machst, solltes du je einen Array für zeit und einer für User bekommen

PHP:
		echo '<td><input type="text" name="user[]" readonly value="'.$user.'"></td>';
		echo '<td>';
                      echo '<select name="zeit[]">';

Okay, dass ist einleuchtend.
Und wie bekomme ich dann die Werte wieder in die Datenbank? :confused:

PHP:
if($_POST['submit']){
 $zeit = $_POST['zeit'];
 $user = $_POST['user'];
 $sql="UPDATE users SET zeit = '$zeit' WHERE username='$user'";
}

Geht so ja nicht.
Keine Ahnung wie ich das hin bekomme.
 
Hallo,

das gehört zwar zu den Grundlagen, aber was solls ;)

Wenn du die Daten als Array verschickst, dann bekommst du auch ein Array welches du dann durchlaufen musst.
Dies kannst du zum Beispiel mit einer einfachen for-Schleife machen.


PHP:
$zeit = $_POST['zeit'];
$user = $_POST['user'];


for($i=0; $i<count($user); $i++) {
  // diese Schleife wird pro User einmal aufgerufen. Zugriff auf die Daten mit
  // $zeit[$i] und $user[$i]
}

Gruß
BK
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück