Daten ändern
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktualisiert code
ausgabe
bestimmen
code
date
datenbank
datum
eintrag
ende
host
inhalt
limit
ordern
page
scheitern
server
start
text
theorie
verbindung
-
Könnt ihr mir ein bischen auf die Sprünge helfen!
Ich habe vor, Daten aus dem Gästebuch editieren zu können.
Dafür habe ich mir folgendes überlegt, das ich erst alle Daten aus der Datenbank ausgebe und diese dann in einem Forumular via "value" ausgebe.
Dadurch kann ich sie immer wieder verändern und später auch neu einspeichern.
Aber die Theorie ist leichter als die Praxis.
<?php include("config.inc.php"); $db = @mysql_pconnect($host, $user, $pass) or die ("Verbindung mit MySQL-Server fehlgechlagen!"); @mysql_select_db($database, $db) or die ("Verbindung zur Datenbank fehlgeschlagen!"); $sql = "SELECT * FROM $table"; $result = mysql_query($sql,$db); $sql = "SELECT * FROM $table ORDER BY id DESC LIMIT; $result = mysql_query($sql,$db); while ($row = mysql_fetch_array($result)) { $name = $row['name']; $inhalt = nl2br($row['eintrag']); $zeit = $row['zeit']; $titel = $row['titel']; $timestamp = $row['timestamp']; $datum = date("d.m.Y",$timestamp); echo "<br><br> <table> <form method="post" action="gb.php"> <tr> <td>Autor: <br></td><td><input type="text" size="30" maxlength="99" name="name" value="".$name.""></td> </tr> <tr> <td>Titel: <br></td><td><input type="text" size="30" maxlength="99" name="titel" value="".$titel.""></td> </tr> <tr> <td>Ihr Eintrag: <br></td><td><textarea name="eintrag" cols="50" rows="7">".$inhalt."</textarea></td> </tr> <tr> <td colspan="2"><input type="submit" name="Button" value="Absenden"></td> </tr> </form> </table>
Die Daten für $timestamp und $zeit werden aus der gb.php bezogen!
Also sind hier unrelevant, da sie auch nicht geändert werden sollen.
Die Darstellung im Gästebuch und das einfügen neuer Kommentare klappt einwandfrei, jedoch das ändern klappt gar nicht.
Andauernd "unexpected T_STRING, expecting ',' or ';'" blablabla".
Lg ferana -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du musst die doppelten Anführungsstriche innerhalb der echo-Ausgabe mit einem \ escapen, da sonst die Zeichenkette beendet wird!
Beispiel:
echo "<br><br> <table> <form method=\"post\" action=\"gb.php\"> <tr> usw....
Beitrag zuletzt geändert: 28.11.2009 14:33:53 von karpfen -
Datenbank gaestebuch:
id int(50) auto_increment name varchar(150) eintrag text zeit time timestamp bigint(20) titel text
Die Datei zur Ausgabe und bearbeitung:
<?php include("config.inc.php"); $db = @mysql_pconnect($host, $user, $pass) or die ("Verbindung mit MySQL-Server fehlgechlagen!"); @mysql_select_db($database, $db) or die ("Verbindung zur Datenbank fehlgeschlagen!"); $sql = "SELECT * FROM $table"; $result = mysql_query($sql,$db); $number = mysql_num_rows($result); $seiten=floor($number/$proseite); $start=$page * $proseite; $sql = "SELECT * FROM $table ORDER BY id DESC LIMIT $start,$proseite"; $result = mysql_query($sql,$db); $ende = $start + $proseite; if ($ende>$number) { $ende = $number; } while ($row = mysql_fetch_array($result)) { $id = $row['id']; $name = $row['name']; $inhalt = nl2br($row['eintrag']); $zeit = $row['zeit']; $titel = $row['titel']; $timestamp = $row['timestamp']; $datum = date("d.m.Y",$timestamp); echo "<br><br> <table> <form action=\"edit.php\" method=\"post\"> <tr> <td><p>Ne-ID:</p></td><td><input type=\"text\" size=\"30\" maxlength=\"99\" name=\"id\" value=\"".$id."\"></td> </tr> <tr> <td><p>Zeit:</p></td><td><input type=\"text\" size=\"30\" maxlength=\"99\" name=\"zeit\" value=\"".$zeit."\"></td> </tr> <tr> <td><p>Datum:</p></td><td><input type=\"text\" size=\"30\" maxlength=\"99\" name=\"timestamp\" value=\"".$timestamp."\"></td> </tr> <tr> <td><p>Autor:</p></td><td><input type=\"text\" size=\"30\" maxlength=\"99\" name=\"name\" value=\"".$name."\"></td> </tr> <tr> <td>Titel: <br></td><td><input type=\"text\" size=\"30\" maxlength=\"99\" name=\"titel\" value=\"".$titel."\"></td> </tr> <tr> <td>Ihr Eintrag: <br></td><td><textarea name=\"eintrag\" cols=\"50\" rows=\"7\">".$inhalt."</textarea></td> </tr> <tr> <td colspan=\"2\"><input type=\"submit\" name=\"Button\" value=\"Absenden\"></td> </tr> </form> </table> <br><br> <br>"; } echo "<center>"; if ($page>0) { $i=$page-1; echo "<a href=\"guestbook.php?page=$i\"><previous</A> "; } ?>
Funktioniert jedoch super!
edit.php
<?php /* Variablen aus dem Forumlar bestimmen */ $name = $HTTP_POST_VARS["name"]; $eintrag = $HTTP_POST_VARS["eintrag"]; $zeit = $HTTP_POST_VARS["zeit"]; $timestamp = $HTTP_POST_VARS["timestamp"]; $id = $HTTP_POST_VARS["id_neu"]; $titel = $HTTP_POST_VARS["titel"]; include("config.inc.php"); $db = @mysql_pconnect($host, $user, $pass) or die ("Verbindung mit MySQL-Server fehlgeschlagen!"); @mysql_select_db($database, $db) or die ("Verbindung zur Datenbank fehlgeschlagen!"); $sql = "UPDATE " . $table . " SET id='" . $id . "', name='" . $name . "', eintrag='" . $eintrag . "', zeit='" . $zeit . "', timestamp='" . $timestamp . "', titel='" . $titel . "' WHERE id='" . $id . "'"; $result = mysql_query($sql,$db); if ($result) { echo "<b>Datensatz wurde aktualisiert.</b><br><br>"; } else { echo "Fehler: Die Informationen wurden nicht aktualisiert! <br>"; } ?>
Kommt immer die Meldung das es angeblich aktualisiert wurde.
Via echo werden auch alle Variablen ausgegeben, liegen also alle an!
Muss an der Verarbeitung scheitern!
Lg ferana -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage