Hast du soweit auch richtig gemacht, um die Datensätze zu aktualisieren benutz einfach UPDATE.
Dann sieht es etwa so aus:
PHP-Code:if (isset($_POST['Submit']))
{
mysql_query("UPDATE tabelle SET spalte1 = inhalt, ...");
}
Hallo,
ich habe folgendes Problem:
Ich möchte aus einer SQL-Datenbank mehrere Datensätze auslesen:
Name Vorname Straße PLZ Ort
xxxxx yyyyyyyy zzzzz 1111 22222
xxxxx yyyyyyyy zzzzz 1111 22222
xxxxx yyyyyyyy zzzzz 1111 22222
xxxxx yyyyyyyy zzzzz 1111 22222
xxxxx yyyyyyyy zzzzz 1111 22222
Diese Daten möchte ich in einem Formular ausgeben. Habe leider nicht ganz den Durchblick wie ich es durchführen soll. Ich habe es so versucht:
$query = "SELECT * FROM spielklassen";
$ergebnis = @mysql_query($query);
$anz_reihen = mysql_num_rows( $ergebnis );
while ( $datensatz = mysql_fetch_row( $ergebnis ) )
{
$kuerzel[$reihe] = $datensatz[0];
print "<input type=text name=kuerzel size=10 value=$kuerzel[$reihe]></td>";
$reihe++;
}
Die Anzeige der Daten funktioniert auch so weit. Ob´s so funktionieren kann, da bin ich mir nicht so sicher.
Wie übergebe ich die Daten, damit ich diese (eventuell geänderten) wieder in die Datenbank schreiben kann und wie muss der Query aussehen?
Danke schonmal
Wir sind allet Borg. Und Du ooch gleich. Dein Widastand kannste vajessen. Weil wa nämlich Deine janzen Eijenschaften in unsre mit rintun werden. So sieht det aus.
Hast du soweit auch richtig gemacht, um die Datensätze zu aktualisieren benutz einfach UPDATE.
Dann sieht es etwa so aus:
PHP-Code:if (isset($_POST['Submit']))
{
mysql_query("UPDATE tabelle SET spalte1 = inhalt, ...");
}
Ich tue mich ein bischen schwer damit.
In welcher Form werden denn die Daten übergeben? Wäre $kuerzel[0] dann der 1. Datensatz der Spalte kuerzel?
Wie sieht denn der genaue Query mit meinen Beispieldaten aus?
Wir sind allet Borg. Und Du ooch gleich. Dein Widastand kannste vajessen. Weil wa nämlich Deine janzen Eijenschaften in unsre mit rintun werden. So sieht det aus.
Naja... so ganz richtig ists nicht... Es ist eher umständlich.
Mein Vorschlag:
dann auf der ankommenden Seite:PHP-Code:$query = "SELECT * FROM spielklassen";
$ergebnis = @mysql_query($query);
while ( $datensatz = mysql_fetch_assoc( $ergebnis ) )
{
print '<input type="text" name="kuerzel['.$datensatz['id'].']" size="10" value="'.$datensatz['spaltenname']."></td>";
$reihe++;
}
Das Vorhandensein einer ID hab ich nu einfach mal festgelegtPHP-Code:foreach($_POST["kuerzel"] AS $id => $value) {
mysql_query("UPDATE spielklassen SET spaltenname = '".$value."' WHERE id = '".$id."' LIMIT 1");
}
Gruss
Jan
Vielen Dank schonmal,
ist denn der Syntax so richtig?
Ich bekomme nach dem einfügen des Codes Fehlermeldungen, die sich allerdings nicht auf den eingefügten Code beziehen.
Sind die " bzw. ' so richtig? Ich dachte immer, innerhalb eines print kann man " nur so \" benutzen.
Wolfgang
Wir sind allet Borg. Und Du ooch gleich. Dein Widastand kannste vajessen. Weil wa nämlich Deine janzen Eijenschaften in unsre mit rintun werden. So sieht det aus.
ups...
GrussPHP-Code:print '<input type="text" name="kuerzel['.$datensatz['id'].']" size="10" value="'.$datensatz['spaltenname'].'"></td>'; // <- das letzte doublequote muss natürlich auch ein einzelnes sein ;)
Jan
Soweit funktioniert es schonmal![]()
Leider übernimmt er mir nicht den Wert der Spalte Kürzel in das Input-Feld.
Wo ist da der Fehler?
$query = "SELECT * FROM spielklassen";
$ergebnis = @mysql_query($query);
while ( $datensatz = mysql_fetch_assoc( $ergebnis ) )
{
print "<tr>";
print '<td><input type="text" name="kuerzel['.$datensatz['id'].']" size="10" value="'.$datensatz['kuerzel'].'"></td>';
print "</tr>";
}
Wir sind allet Borg. Und Du ooch gleich. Dein Widastand kannste vajessen. Weil wa nämlich Deine janzen Eijenschaften in unsre mit rintun werden. So sieht det aus.
Heisst die Spalte mit 100% "kuerzel" ? Ansonsten sehe ich keinen Fehler.
![]()
Das ist mir jetzt etwas peinlich. Wenn die Spalte kurzel heisst sollte man sie auch so aufrufen.
Klappt prima. Danke.
Eine abschließende Frage noch:
Wenn ich mehrere Spalten updaten will, wie muss ich den Query dann erweitern?
foreach($_POST["kuerzel"] AS $id => $value) {
mysql_query("UPDATE spielklassen SET spaltenname = '".$value."' WHERE id = '".$id."' LIMIT 1");
}
Wir sind allet Borg. Und Du ooch gleich. Dein Widastand kannste vajessen. Weil wa nämlich Deine janzen Eijenschaften in unsre mit rintun werden. So sieht det aus.
mysql_query("UPDATE spielklassen SET spaltenname = '".$value."',spaltennamezwei = 'wert' WHERE id = '".$id."' LIMIT 1");
Gruss
Jan
Das hatte ich mir schon gedacht, aber muss ich hier auch was ändern?
foreach($_POST["kuerzel"] AS $id => $value)
Wir sind allet Borg. Und Du ooch gleich. Dein Widastand kannste vajessen. Weil wa nämlich Deine janzen Eijenschaften in unsre mit rintun werden. So sieht det aus.
Ich weiss ja nicht was du updaten willst? Bzw. woher die zu updatenden Sache kommen...
Also, das Formular sieht wie folgt aus:
print "<form method=POST action=admin.php?anwender=$anwender&gruppe=$gruppe&bereich=admin_spieltage&vorgang=edit_ok>";
print "<table width=780 align=center border=0 cellpadding=0 cellspacing=0>";
print "<tr><td><b>Kürzel</b></td>";
print "<td><b>Bezeichnung</b></td>";
print "<td><b>Anfang</b></td>";
print "<td><b>Ende</b></td>";
print "<td><b>Reihenfolge</b></td></tr>";
$query = "SELECT * FROM spieltage ORDER BY reihenfolge";
$ergebnis = @mysql_query($query);
while ( $datensatz = mysql_fetch_assoc( $ergebnis ) )
{
print "<tr>";
print '<td><input type="text" name="spieltag['.$datensatz['id'].']" size="20" value="'.$datensatz['spieltag'].'"></td>';
print '<td><input type="text" name="bezeichnung['.$datensatz['id'].']" size="55" value="'.$datensatz['bezeichnung'].'"></td>';
print '<td><input type="text" name="anfang['.$datensatz['id'].']" size="10" value="'.$datensatz['anfang'].'"></td>';
print '<td><input type="text" name="ende['.$datensatz['id'].']" size="10" value="'.$datensatz['ende'].'"></td>';
print '<td><center><input type="text" name="reihenfolge['.$datensatz['id'].']" size="5" value="'.$datensatz['reihenfolge'].'"></td>';
print "</tr>";
}
print "<tr></tr>\n";
print "<tr><td colspan=4><input type=submit value=Abschicken name=SubmitBtn><input type=reset value=Zurücksetzen name=SubmitBtn2></td></tr>";
print "</table>";
print "</form>";
Ich möchte für alle 5 Spalten alle Werte in die Tabelle "spieltage" zurückschreiben.
Wir sind allet Borg. Und Du ooch gleich. Dein Widastand kannste vajessen. Weil wa nämlich Deine janzen Eijenschaften in unsre mit rintun werden. So sieht det aus.
Da der Key bei allen Sachen gleich ist, reicht es, wenn du die foreach-Schleife so lässt. Du musst nur den query so erweitern:
Also wie hier mit Bezeichnung, musst du es für alle anderen auch machen.Code:foreach($_POST["kuerzel"] AS $id => $value) { mysql_query("UPDATE spielklassen SET spaltenname = '".$value."',bezeichnung = '".$_POST['bezeichnung'][$id]."' WHERE id = '".$id."' LIMIT 1"); }
Gruss
Jan
Muss ich $value durch etwas anderes ersetzen?
Ich bekomme die Meldung "Warning: Invalid argument supplied for foreach() "
Wir sind allet Borg. Und Du ooch gleich. Dein Widastand kannste vajessen. Weil wa nämlich Deine janzen Eijenschaften in unsre mit rintun werden. So sieht det aus.
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)