MySQL-Abfrage: leeres Resultat obwohl Datensätze vorhanden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
beispiel
benutzen
betreffenden eintrag
code
eintrag
ergebnis
fehler
folgende abfrage
griff
helfen
index
kommentar
links action
links verfassen
problem
projekt
rat
sagen
statement
tabelle
-
Hallo ihr alle!
ich arbeite seit einiger Zeit an einer kleinen Community und bin schon vor einer ganzen Zeit auf ein Problem gestoßen, das ich einfach nicht in den Griff bekomme, und bei dem weder Google noch ein Freund, der sich sher gut mit php und dem drumherum auskennt, Rat weiß.
Folgendes:
Jeder User kann Gästebucheinträge und Kommentare zu geposteten Links verfassen., die man auch wieder löschen können soll. Das Problem ist, dass man natürlich nur die Kommentare/Einträge löschen darf, die man selbst geschrieben hat. Es wird also immer, wenn man den betreffenden Eintrag selbst verfasst hat, ein kleines Kreuz angezeigt, das einen zu der Seite
index.php?section=links&action=deletecomment&id=46 weiteleitet (Die 46 ist nur ein Beispiel und steht stellvertretend für die ID des zu löschenden Kommentars/Eintrags). Da man diesen Link aber einfach verändern kann, kann man ja nicht einfach sagen, wir löschen jetzt den Kommentar mit der ID 46. Also nimmt man aus der Tabelle "Kommentar" die "AutorID" und vergleicht sie mit der eigenen "UserID". Dazu folgende Abfrage:
if($_GET['action'] == 'deletecomment') { if(!isset($_GET['id'])) { $ret['filename'] = 'links_overview.tpl'; return $ret; } $sql = 'SELECT AutorID FROM Kommentar WHERE ID = ?'; if (!$stmt = $db->prepare($sql)) { die ('MySQL-Fehler: '.$db->error); } $stmt->bind_param('i', $_GET['id']); if (!$stmt->execute()) { die ('MySQL-Statement-Fehler: '.$stmt->error); } $stmt->bind_result($AutorID); $stmt->close(); var_dump($AutorID); if($AutorID != $UserID) { return NO_RIGHTS; } $sql = 'DELETE FROM Kommentar WHERE AutorID = ? AND ID = ?'; $stmt = $db->prepare($sql); if (!$stmt) { return $db->error; } $stmt->bind_param('ii', $UserID, $_GET['id']); if (!$stmt->execute()) { return $stmt->error; } $stmt->close(); return showSuccess('Kommentar erfolgreich entfernt.'); }
Das Problem ist nun, dass bei var_dump($AutorID); das Ergebnis "int(0)" ist, und ich weiß absolut nicht was ich falsch gemacht habe.
Vlt kann mir ja jmd von euch helfen? Ich hab hier extra alles ausführlich(st) erklärt, wenn jmd eine andere Lösung hat würde mir das auch sehr weiterhelfen...
mfg
Beitrag zuletzt geändert: 14.11.2010 14:44:59 von lan-im-netz -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage