mehere daten gleichzeitig ändern

ich habe die Daten aus der DB in FELDER ausgelesen. Dort kann ich sie dann auch gleich ändern.

PHP:
$abfrage = "SELECT Name FROM person";
$erg = mysql_query($abfrage);
while($row = mysql_fetch_object($erg))
{
echo '<input name="vorname" value="'.$row->Name.'" type="text"><br>';
}

wenn ich auf den submit-button drücke, soll die seite sich neu laden und mir die geänderten daten anzeigen. Das erneute auslesen geht ja mit dn code von oben wieder. aber was mir den kopf zerbricht ist, das ich mehrere Daten gleichzeitig ändern will und das UPDATE nicht hinbekomme.

PHP:
$sql = "UPDATE `person` SET `Name` = ... WHERE ...
$eintragen=mysql_query($sql)
 
Du trennst das einfach mit komma ;)
PHP:
$update = "UPDATE person SET Feldxy = 'nummer1', Feldtata = 'bla blub', `und mit leerzeichen` = 'ohneLeerzeichen`, `where` = 'Dieses Feld hat den namen einer MySQL Funktion' WHERE id = 55";
$query = mysql_query($update);
 
duschreibst als ob es mehrere feld mit verschiedenen namen gebe. aber ist nur 1 feld das mit einer schleife wiederholt ausgeführt wrid.
z.B

Georg
Max
Hans
....

nun kann ich doch keine bedingung reinschreiben wie >>Feldxy = 'nummer1'<<, dort soll doch nicht immer nummer1 drinstehen, sondern jedesmal das, was man angegeben hat. bzw welchen namen man in einen anderen geändert hat. und bei where id = 55 geht auch net, das es ja immer ne andere id ist.


Ich muss das geänderte in ein arry bekommen aber wie?
 
PHP:
$abfrage = "SELECT Name FROM person";
$erg = mysql_query($abfrage);
while($row = mysql_fetch_object($erg))
{
echo '<input name="vorname[]" value="'.$row->Name.'" type="text"><br>';
}

Dadurch wird vorname[] ein Array.

Und dann:

PHP:
foreach($_POST['vorname'] as $vname)
{
  mysql_query("UPDATE `table` SET `field` = '".mysql_real_escape_string($vname)."' WHERE `bedingung` = true");
}

Das ist natürlich vereinfacht.
 
so jetzt bin ich soweit. es kommt keine fehlermeldung, aber egal was ich schreibe die daten aktualisieren sich net. es stehen noch die alten in der DB. warum

PHP:
<?php
		mysql_connect("localhost","root","")
		or die("Keine Verbindung moeglich");
		mysql_select_db("personen")
		or die("Die Datenbank existiert nicht");	
// Daten updaten, wenn vorhanden		
		if (isset($_POST['vorname'])) 
		{
	    	foreach ($_POST['vorname'] as $ID => $name) 
			{
	        	$sql = "UPDATE `person`
	                SET `Name` = '" . mysql_real_escape_string($name) . "' 
                        WHERE `ID_Name` = " . (int) $ID . ";";
	       		mysql_query($sql) OR die(mysql_error());
	    	}
		}	
// Daten für die Ausgabe auslesen		
		$sql = "SELECT `ID_Name`, `Name` FROM `person` ORDER BY `Name`;";
		$result = mysql_query($sql) OR die(mysql_error());
// Daten abschicken
		echo '<form action="" method="post">';
		while ($row = mysql_fetch_assoc($result)) {
    	echo '<input type="text" name="vorname[' . $row['ID_Name'] . ']" value="' . 
              $row['Name'] . '"<br />';
		}
		echo '<input type="submit" />';
		echo '</form>';  
		?>
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück