Zwei MySQL Selects in Folge Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angabe
art
code
dank
datensatz
datum
fehlermeldung
freuen
gewehr
grund
info
inhalt
jemand
nachfrage
not
null
problem
statement
tabelle
warten
-
Hallo,
$sql = 'SELECT News.ID, User.Username AS Autor, News.Titel, News.Inhalt, News.Datum FROM News JOIN User ON News.AutorID = User.ID WHERE News.ID = ?'; if (!$stmt = $db->prepare($sql)) { return $db->error; } $stmt->bind_param('i', $ID); if (!$stmt->execute()) { return $stmt->error; } $stmt->bind_result($NewsID, $Autor, $Titel, $Inhalt, $Datum); if (!$stmt->fetch()) { return 'Es wurde keine News mit der angegebenen ID gefunden.'; } $stmt->close(); $sql = 'SELECT User.Username AS Autor_Edit, News.Datum_Edit FROM News JOIN User ON News.AutorID_Edit = User.ID WHERE News.ID = ?'; if (!$stmt = $db->prepare($sql)) { return $db->error; } $stmt->bind_param('i', $ID); if (!$stmt->execute()) { return $stmt->error; } $stmt->bind_result($Autor_Edit, $Datum_Edit); $stmt->close(); var_dump($Autor_Edit); var_dump($Datum_Edit);
Die NewsID wird korrekt übertragen. Und der 1. Select geht auch wunderbar und wird in der entsprechenden Template richtig angezeigt. Der 2. nicht. Der var_dump gleich nach dem blind result ergibt NULL NULL, was ich nicht verstehen kann.
Der Grund wieso ich überhaupt mit zwei verschiedenen Selects arbeite ist, da ich 2x einen Username holen muss, einmal von dem Autor der News und einmal von den, der die News geändert hat. Vielleicht kennt ja jemand ne Möglichkeit, wie ich das mit einem machen kann oder mir erklären kann wieso der 2. Select NULL NULL ergibt.
Würde mich freuen.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
ich tippe einfach mal darauf das er einfach keinen datensatz mit dem 2. select findet und deshalb null zurückliefert. es ist auf jeden fall sinnvoller die beiden querys zusammen zuführen.
musst du einfach die tabelle user 2 mal joinen und das entsprechende feld sprichst du mit dem jeweiligen alias an.
select n.id u1.autor1_name u2.autor2_name from news as n join user as u1 on u1.id = n.id_autor join user as u2 on u2.id = n.id_autor_edit where n.id = 1
angaben ohne gewehr
Beitrag zuletzt geändert: 10.11.2011 1:36:10 von aero23 -
Danke euch beiden.
@aero23: Genau nach sowas habe ich gesucht. Vielen Dank.
Habe zwar auch schon mit 2 Joins bei User gearbeitet, jedoch kam bei mir immer die Fehlermeldung mit not a Unique Join oder so was in der Art, wusste nicht dass man hier auch mit "AS" arbeiten kann. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage