kostenloser Webspace werbefrei: lima-city


Zwei MySQL Selects in Folge Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    juliantop

    juliantop hat kostenlosen Webspace.

    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.

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Joins... Nested Selects... IF Statement.
    Die Möglichkeiten sind zahlreich und warten darauf genutzt zu werden.

    Nähere Infos gibt google. Falls du dabei konkret auf ein Problem stößt kannst du nochmal nachfragen.
    Damit sparst du dir das IF und zwei DatenbankQuerys usw usf
  4. 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
  5. Autor dieses Themas

    juliantop

    juliantop hat kostenlosen Webspace.

    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.
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!