tabelle updaten..

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Fraenky
Mitglied
Beiträge: 111
Registriert: 31.07.2002 13:53

tabelle updaten..

Beitrag 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).

Code: Alles auswählen

if($flag==1)
{
//löschen
}
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:

Code: Alles auswählen

if($flag==2)
{
//speichern
}
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
Elo
Mitglied
Beiträge: 318
Registriert: 04.11.2002 17:44

Beitrag 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
Benutzeravatar
Fraenky
Mitglied
Beiträge: 111
Registriert: 31.07.2002 13:53

Beitrag 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";
Elo
Mitglied
Beiträge: 318
Registriert: 04.11.2002 17:44

Beitrag 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
Benutzeravatar
Fraenky
Mitglied
Beiträge: 111
Registriert: 31.07.2002 13:53

Beitrag 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,...
Elo
Mitglied
Beiträge: 318
Registriert: 04.11.2002 17:44

Beitrag 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:

Code: Alles auswählen

$ergebnis[$i]['absender']
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:

Code: Alles auswählen

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?.
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 :lol:

Viel Erfolg,
Elo
Benutzeravatar
Fraenky
Mitglied
Beiträge: 111
Registriert: 31.07.2002 13:53

Beitrag 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:

Code: Alles auswählen

$absender=".ergebnis[$i][absender]."
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 :wink: )..

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:

(

Code: Alles auswählen

echo ".$ergebnis[$i][absender].";
)

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??
Elo
Mitglied
Beiträge: 318
Registriert: 04.11.2002 17:44

Beitrag 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
Benutzeravatar
Fraenky
Mitglied
Beiträge: 111
Registriert: 31.07.2002 13:53

Beitrag 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
Benutzeravatar
Fraenky
Mitglied
Beiträge: 111
Registriert: 31.07.2002 13:53

Beitrag 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* :D

jo ma gucken was damit anfangen kannst.
Antworten

Zurück zu „Coding & Technik“