Textfelder gleichzeitig aktualisieren / Update MySQL

Shooter2k

Erfahrenes Mitglied
Hallo,
ich habe folgendes Problem und zwar lese ich bestimmte werte aus einer MySQL Tabelle uas. Diese Werte gebe ich untereinander in Textfelder aus.
Bei 1x Textfeld ist es kein Problem aber bei mehreren.
Ein kleines Beispiel zum besseren Verstehen:
Tabelle Kauf;
Felder : artNr, artAnz, artPreis, auftrag
sql = SELECT * FROM kauf WHERE auftrag = '123456'
ausgabe :
ergebnis 1 : artAnz, artPreis
ergebnis 2 : artAnz, artPreis

Beim update der Textfelder weis ich nun nicht weiter da es ja mehr als 1 ist.
Sonst habe ich es immer so gemacht:
sql = UPDATE kauf Set artAnz = '".$_GET['artAnz']."' WHERE auftrag = $auftrag....

Aber es geht ja nicht bei mehren .. ich muss ja dann auch unterschiedliche Textfeldnamen verwenden .. vieleicht als Feldnamen die artNr? oder als Array?
Kann mir jemand helfen?
DANKE
mit freundlichen Grüßen
Henry
 
Du kannst doch mehrere updates schreibenbsp: test = '2', test2 = '423' etc. einfach mit , trennen
 
DANKE für deine Antwort..
klar kann ich mehrere Updates hintereinander schreiben aber nur wenn es unterschiedliche Textfeldnamen sind aber der Update befehl müsste sich ja dann dynamisch erweitern , je nach dem wieviel Artikel der Kunde gekauft hat.

Deswegen meine ich ja :

PHP:
$sql = "SELECT * FROM kauf WHERE auftrag = nummer";
// iefert meinetwegen 3 ergebisse zu einer auftragsnummer

Ergebnis1 artNr , artPreis, artAnz
Ergebnis2 artNr , artPreis, artAnz
Ergebnis3 artNr , artPreis, artAnz

Wenn ich die werte in Ergebnis 2 und 3 änder , dann soll er sie updaten und zu dem dazugehörigen auftrag schreiben bzw updaten...


DANKE
 
eigentlich ganz einfach ;)

PHP:
<input type="text" name="wert[]"><br>
<input type="text" name="wert[]"><br>
.
.
.
//So kannst du erstmal beliebig viele Textfelder ausgeben
//die bekommst du dann als Array zurück.

for ($i = 0; $i < count($_POST['wert']); $i++){
    $SQL = sprintf('UPDATE TABELLE SET feld='%s' where id='%s',$_POST['wert'][$i], $i);

}

oder so ähnlich, ist das Prinzip klar?
 
Danke für deine schnelle Antwort ..
Die schleife habe ich verstanden aber was
soll in den Textfeldern stehen ? <input type="text" name="wert[]">?
wer[] habe ich nicht ganz verstanden.

Mit freundlichen Grüßen
Henry Schütt
 
Code:
$res=mysql_query("select a, b, c from tabelle where x='y' ");
while($r=mysql_fetch_array($res)) { 
   echo $r[a];
   echo $r[b];
   echo $r[ c];
}

nur eine abfrage...
wenn datensätze vorhanden dann in schleife ausgegeben...mittels $r[spalte]

mfG
Hammerhe@rt


achherjey wieder nur halb gelesen und nu keine zeit mehr...sorry ;)
 
Zuletzt bearbeitet:
Du willst ja mehrere Werte in einem Feld zurückgeben, das immer gleich heisst.

<input type="text" name="wert[]" value="hallo"><br>
<input type="text" name="wert[]" value="ich bin"><br>
<input type="text" name="wert[]" value="ein array"><br>

liefert dir
$wert[0] = 'hallo';
$wert[1] = 'ich bin';
$wert[2] = 'ein array';

Ansonsten kannst du auch mit
<input type="wert1">
<input type="wert2">... arbeiten ist aber im Vergleich zur Array Variante unkomfortabel, da du hier nur umständlich ermitteln kannst, wie vielei Elemente überhaupt gesendet wurde, bzw. welche dieser Felder dann befüllt waren etc.
 
danke dir nur scheint was mit der schleife nicht zu funktionieren vieleicht nur ein syntax fehler den ich übersehen habe?

PHP:
<form name="form1" method="post" action="<? php_self ?>">
<?
include("../verbindung.php");
$sql = "SELECT * FROM xxx WHERE id = 1";
$todo = mysql_query($sql);
while($daten = mysql_fetch_array($todo)) {
$inhalt = $daten[test];
$id = $daten[id];
?>
  <input type="text" name="wert[]" value="<? echo $inhalt;?>">

 <?

}


?>

  <input type="submit" name="Submit" value="Senden">


<?
if($_POST['submit']) {
include("../verbindung.php");
//So kannst du erstmal beliebig viele Textfelder ausgeben
//die bekommst du dann als Array zurück.

for ($i = 0; $i < count($_POST['wert']); $i++){
    $SQL = sprintf('UPDATE xxx SET test='%s' where id='%s',$_POST['wert'][$i], $i');

} 

}


?>
</form>
 
Zurück