Seite 1 von 2
tabelle updaten..
Verfasst: 15.11.2002 20:10
von Fraenky
Hi Leutz,
ich hab nen Problem:
Ich möcht eine Seite zum bearbeiten meines Gästebuchs bauen und der name, herkunft, message [...] wird dann in einem Formulafeld auf dieser bearbeiten-Seite ausgeben, damit ich das alles verändern kann.
Aber wie mach ich dat? Ich hab den Text in einem Textarea Feld und den verändere ich nun und dann brauch ich ein Link der das abspeichert.
Ich hab bis jetzt mit einer if Anweisung gearbeitet (und mit dem löschen hats schon geklappt).
Link:
Code: Alles auswählen
<a href="bearbeiten.php?ID=".$ergebnis[$i][ID]."&flag=1>löschen</a>
und dann wollt ich halts so machen:
Link:
Code: Alles auswählen
<a href="bearbeiten.php?ID=".$ergebnis[$i][ID]."&flag=2>speichern</a>
und wie geht das nu(das Speichern)? ich habs versucht mit:
Code: Alles auswählen
UPDATE FROM $tabellenname SET absender, herkunft, email, homepage, bewertung, message, datum, zeit WHERE ID=$ID";
aber irgendwie klappts nich..
brauch unbedingt Hilfe!
THX
Fraenky
Verfasst: 16.11.2002 21:35
von Elo
Das solltest Du über ein Formular realisieren.
Zuerst solltest Du die zu bearbeitenden Daten aus der Datenbank in das Formular übergeben und dann mit (jetzt zu deiner Frage)
Code: Alles auswählen
"UPDATE " . $tabellenname . " SET absender='$absender', herkunft='$herkunft', email='$email', homepage='$homepage', bewertung=$bewertung, message='$message', datum=$datum, zeit=$zeit WHERE ID=$ID";
zurück schreiben.
Die Variablen sollten hierbei den gleichen Namen wie im Formular erhalten.
P.S Für Datum und Zeit eine eigene Spalte? Dies kannst Du dir sparen wenn Du mit Internetzeit "time()" arbeitest und dadurch nur eine Spalte benötigst.
HTH
Elo
Verfasst: 16.11.2002 22:31
von Fraenky
hey danke erstmal! aber wie meinst du das mit den variablen im Formular?
Ich hbas jetzt so gelöst: (ein Bsp.)
Code: Alles auswählen
echo "Name: </td><td><input type=Text name=absender size=30 value=".$ergebnis[$i][absender]."></td>";
(Mit der Tabelle [<td>...] hab ich das nur nen bissl geordnet.
dann müssten doch die Variablen so aussehen:
Code: Alles auswählen
UPDATE $tabellenname SET absender='$ergebnis[$i][absender]' WHERE ID=$ID";
Oder so mit "Punkten":
Code: Alles auswählen
UPDATE $tabellenname SET absender='.$ergebnis[$i][absender].' WHERE ID=$ID";
Verfasst: 16.11.2002 22:54
von Elo
Sieht doch schon ganz gut aus.
Acht darauf das Du in Inputfeldern Bezeichnungen in Anführungstrchen angibst. Also input type="Text" name="absender" statt input type=Text name=absender. Bei Zahlen ist des nicht erforderlich.
Um beim Beispiel zu bleiben. Die Variable die Du nun mit dem Formular übergibst ist $absender nicht $ergebnis[$i][absender].
Das [$i] wäre nötig wenn Du z.B. über eine for-Schleife ein Array abfragst.
Code: Alles auswählen
$tabellenname = "meine_gaestebuch_tabelle";
"UPDATE ". $tabellenname . " SET absender='$absender' WHERE ID=$ID";
Auch hier gilt: Fügst Du mit der Variablen Text in die Datenbank ein kommt die Variable in einfache Anführungsstriche bei der Übergabe von Zahlen ist dies nicht nötig.
Elo
Verfasst: 16.11.2002 23:41
von Fraenky
Ja die daten werden aus der MySQL Datenbank abgefrage und in einem Array "aufgefangen" deshalb hab ich hier die [$i].
Das isn 2demensionales Array: ergebnis[$i][absender].
Mit i wird doch nur durchgezählt und die jeweligen Daten hab ich dann im Array.
d.h. wenn ich zb die Homeüpage haben will muss ich doch auf das Arrayx so zugreifen: ergebnis[$i][homepage].
Und was soll ich nur beim Formular als Value angeben? Es soll ja da zb die Homepage drinstehen. (Also value=".ergebnis[$i][homepage].")
Aber warum muss ich die Bezeicnungen im Formular in Anführungstriche setzten. Das ist doch php und das echo würde doch dann als Ende sehen und dann bekomm ich doch bestimmt ne Fehlermeldung. Ich glaub aber ich kann/darf auch die '' Zeichen als Anführungstriche verwenden?.
Aber ich weiss nich, wo ich dann die variable $absender hernehmen soll?
Wenn das so wie oben beschrieben ist. Oder hat das im Formular als Namen etwas zu sagen,...
Verfasst: 17.11.2002 02:04
von Elo
Ja die daten werden aus der MySQL Datenbank abgefrage und in einem Array "aufgefangen" deshalb hab ich hier die [$i].
Das isn 2demensionales Array: ergebnis[$i][absender].
Dann will ich mal hoffen das Du dieses Array über eine Schleife abfragst.
Ich kenne den Quelltext ja nicht.
Korekkt wäre:
Und was soll ich nur beim Formular als Value angeben? Es soll ja da zb die Homepage drinstehen. (Also value=".ergebnis[$i][homepage].")
Die sollte folgendermaßen geschen:
Aber warum muss ich die Bezeicnungen im Formular in Anführungstriche setzten. Das ist doch php und das echo würde doch dann als Ende sehen und dann bekomm ich doch bestimmt ne Fehlermeldung. Ich glaub aber ich kann/darf auch die '' Zeichen als Anführungstriche verwenden?.
Du musst nur darauf achten welche Anführungszeichen Du für was verwendest
Verworen nicht wahr.
Beispiel:
Code: Alles auswählen
$ausgabe = '<input type="text" name="homepage" size="60" value="' . $ergebnis[$i]['homepage'] . '">';
Der php-String wird durch die ' gesteuert/begrenzt und für den HTML-Tag werden die " benutzt.
Das Funktioniert auch andersherum (php=" und HTML=') nur ducheinander bringen darfst Du sie nicht, dann gibt es Fehlermeldungen.
So, nun sind wir den Grundkurs "PHP-String Abhandlung I" durch
Viel Erfolg,
Elo
Verfasst: 17.11.2002 14:05
von Fraenky
ja aber wo bekomm ich denn nu den $absender her? etwa aus,m Namen im Formular?
oder soll ich ne zeile so einfügen:
Zum Array: Ja das wird mit ner Forschleife durchlaufen.
irgendwie bekomm ich dat nich gebacken..
ich hab ja bis jetzt ne reine php Datei daraus werd ich erstma ne html-php machen, damit ich nich durcheinander komm mit den "" und ''...(das Problem hatte ich auch schon ma

)..
hm.. ich merk grad, dass die schon ne html-php Datei is und das die Gästebucheintrage auch mit ner for Schleife ausgegeben werden...(halt nur in einem Formular..)
ach ja wenns dich interessiert, wo das Gästebuch ist:
http://www.FC-Aufbau-Sternberg.de.vu
sieht ja schön und gut aus, aber mir fehlt, wie gesagt, nur noch eine Seite zu bearbeiten..
nochma:
als erstes werden die daten (absender im Formular des GB in zb $absender gespeichert:
Code: Alles auswählen
<input type=text name=absender value='<?php echo $absender; ?>'>
jetzt geb ich die daten wieder aus normal mit echo:
Code: Alles auswählen
echo $ergebnis[$i][email]="<a href=mailto:".$ergebnis[$i][email].">".$ergebnis[$i][absender]."</a>";
(gleich mit Email Adresse angeben. Vereinfacht:
(
)
So und nu die daten in einem Formular ausgeben:
Code: Alles auswählen
<input type=Text name=absender size=30 value=".$ergebnis[$i][absender].">
nu das abspeichern??
Verfasst: 17.11.2002 15:57
von Elo
So wie ich dich jetzt verstanden habe bekommst Du die Daten bereits ausgelesen und in das Bearbeiten-Formular angezeigt.
Beim update kannst Du die einzelnen Übgebenen Daten mit dem im Input vergebenen Namen ansprechen nur eben mit einem "$" vorweg.
Solltest Du mehrere GB-Einträge in das Bearbeiten-Formular übergeben, achte darauf da die NAmen in den Input-Felder nur einmal vergeben ist.
Z.B. in Eintrag eins heisst das Absender-Feld "name=absender1" in Eintrag zwei eben "name=absender2" oder so ähnlich.
Elo
Verfasst: 17.11.2002 17:38
von Fraenky
jo also den Namen des input Feldes verwenden. Ja die absender sind an ihrer ID ja zu unterscheiden.
Jo werd ich ma auspobieren..
Fraenky
Verfasst: 17.11.2002 18:33
von Fraenky
es klappt immer noch nicht.
hier hast den Quellcode:
http://mitglied.lycos.de/fraenky8/php/php.txt
musst dann auf Quelltext anzeigen im Kontexmenü klicken. Das Passwort hab ich unkenntlich gemacht.
Wie du siehst bin ich bei Tripod (weils kostenlos ist), deshalb stör dich nicht an die Zeilen nach dem eigentlichen Quelltext (nach dem </html>).
Is nur da um die lästige Werbung abzuschalten. *pssssssssst*
jo ma gucken was damit anfangen kannst.