 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
29.07.2003, 19:42
|
#1
|
|
TP-Junior
Registriert seit: Jul 2003
|
Mehrere Datensätze auslesen und in einem Formular zum editieren anzeigen
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.
|
|
|
29.07.2003, 20:14
|
#2
|
|
Guest
Registriert seit: Aug 2002
|
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, ...");
}
|
|
|
29.07.2003, 20:22
|
#3
|
|
TP-Junior
Registriert seit: Jul 2003
|
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.
|
|
|
31.07.2003, 10:23
|
#4
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Naja... so ganz richtig ists nicht... Es ist eher umständlich.
Mein Vorschlag:
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++;
}
dann auf der ankommenden Seite:
PHP-Code:
foreach($_POST["kuerzel"] AS $id => $value) {
mysql_query("UPDATE spielklassen SET spaltenname = '".$value."' WHERE id = '".$id."' LIMIT 1");
}
Das Vorhandensein einer ID hab ich nu einfach mal festgelegt
Gruss
Jan
|
|
|
31.07.2003, 18:31
|
#5
|
|
TP-Junior
Registriert seit: Jul 2003
|
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.
|
|
|
31.07.2003, 18:34
|
#6
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
ups...
PHP-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 ;)
Gruss
Jan
|
|
|
31.07.2003, 20:25
|
#7
|
|
TP-Junior
Registriert seit: Jul 2003
|
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.
|
|
|
31.07.2003, 20:29
|
#8
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Heisst die Spalte mit 100% "kuerzel" ? Ansonsten sehe ich keinen Fehler.
|
|
|
31.07.2003, 23:32
|
#9
|
|
TP-Junior
Registriert seit: Jul 2003
|
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.
|
|
|
31.07.2003, 23:35
|
#10
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
mysql_query("UPDATE spielklassen SET spaltenname = '".$value."',spaltennamezwei = 'wert' WHERE id = '".$id."' LIMIT 1");
Gruss
Jan
|
|
|
31.07.2003, 23:43
|
#11
|
|
TP-Junior
Registriert seit: Jul 2003
|
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.
|
|
|
31.07.2003, 23:45
|
#12
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Ich weiss ja nicht was du updaten willst? Bzw. woher die zu updatenden Sache kommen...
|
|
|
31.07.2003, 23:48
|
#13
|
|
TP-Junior
Registriert seit: Jul 2003
|
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.
|
|
|
31.07.2003, 23:51
|
#14
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
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:
Code:
foreach($_POST["kuerzel"] AS $id => $value) {
mysql_query("UPDATE spielklassen SET spaltenname = '".$value."',bezeichnung = '".$_POST['bezeichnung'][$id]."' WHERE id = '".$id."' LIMIT 1");
}
Also wie hier mit Bezeichnung, musst du es für alle anderen auch machen.
Gruss
Jan
|
|
|
31.07.2003, 23:57
|
#15
|
|
TP-Junior
Registriert seit: Jul 2003
|
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)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 21:00 Uhr.
|
 |