Seite 1 von 2
PHP/MySQL: Gästebuch edit Funktion
Verfasst: 16.12.2008 17:26
von FarChris
Hallo,
ich habe ein kleines Gästebuch erstellt.
www.comuse.org/gb/gb.php
Dazu bin ich gerade dabei, eine edit-Funktion zu erstellen:
www.comuse.org/gb/bearbeiten.php
In dieser Datei treten allerdings mysql_fetch_array-Fehler auf.
Durch einen Befehl habe ich weitere Details der Meldung anzeigen lassen.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Hier ist die bearbeiten.php als txt Datei:
www.comuse.org/gb/bearbeiten.txt
Ich hoffe jemand kann mir helfen.
edit: Am liebsten wäre es mir, wenn man eine ID eines Eintrages in ein Feld eintragen könnte, diese abschickt und man dann die Eingaben der ID (Name, E-Mail etc.) ändern kann.
Danke!
Verfasst: 16.12.2008 18:07
von Miriam
Du solltest den Fehler der Nichtübergabe einer ID abfangen (z.B. mit isset()), dann passt das auch besser.
Probier' mal:
http://www.comuse.org/gb/bearbeiten.php?ID=1
ID muss gross geschrieben werden bei Deiner Variante.
Verfasst: 16.12.2008 18:25
von FarChris
Hallo, danke.
Wie genau sollte es dann heißen?
isset($ID)) ?
Habe noch ein weiteres Problem:
Wenn ich einen Eintrag ändere,
z.B.
http://www.comuse.org/gb/bearbeiten.php?ID=52
dann wird dieser nicht gespeichert.
An was liegt das nun wieder?
Hier die update.txt:
http://www.comuse.org/gb/update.txt
Danke!

Verfasst: 16.12.2008 18:38
von Miriam
Welchen Sinn hat das?
Und die Sache mit der ID könntest Du so angehen:
Code: Alles auswählen
if (isset($_GET['ID']) && $_GET['ID'])
{
$id = intval($_GET['ID']);
$auswahl = mysql_query("SELECT * FROM eintraege WHERE ID = $ID");
}
else
{
exit("ID vergessen!");
}
Verfasst: 16.12.2008 18:47
von FarChris
Hallo,
leider erscheint immer noch eine Fehlermeldung:
http://comuse.org/gb/bearbeiten.php
--------
Ich habe nun das "header:location" rausgenommen.
Leider wird der Eintrag nicht geändert:
http://www.comuse.org/gb/bearbeiten.php?ID=59
Vielen Dank für deine Hilfe!
Verfasst: 16.12.2008 18:58
von Miriam
Darf ich mal die bearbeiten.php sehen?
Und ersetze mal in der update.php
gegen:
Code: Alles auswählen
$result = mysql_query($sql_update);
if (!$result) {
die('Ungültige Abfrage: ' . mysql_error());
}
Und wozu das?
Code: Alles auswählen
$open = mysql_query("SELECT * FROM eintraege WHERE ID=$ID ORDER BY ID ASC");
Das scheitert doch schon wieder an $ID.
Und beschäftige Dich auch mit SQL Injections. (Das nur am Rande.)
Klick
Verfasst: 16.12.2008 19:02
von FarChris
Hallo,
hier die aktuelle bearbeiten und update.txt:
www.comuse.org/gb/bearbeiten.txt
www.comuse.org/gb/update.txt
Nachdem ich den Code in der update.php geändert habe, erscheint folgende Meldung:
Ungültige Abfrage: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id=' at line 6
Verfasst: 16.12.2008 19:06
von Miriam
Einen Tip gebe ich noch:
ist NICHT
Du übergibst die ID in Kleinbuchstaben also id.
Verfasst: 16.12.2008 19:16
von FarChris
Danke.
Ich habe die Txt Dateien noch einmal aktualisiert.
Ich hab die IDs nun geändert.
Die Update-Funktion funktioniert leider immer noch nicht. Es kommt immer nur diese SQL-Fehlermeldung.
Verfasst: 16.12.2008 19:25
von Miriam
Zum einen hast Du ein Komma in update.php zuviel
Da muss das Komma weg.
zum anderen ist ID mit $_GET['id'] abzufragen also KLEIN id.
in update.php finde
austauschen gegen:
Und ich weise nochmals auf die SQL Injections hin!