Ankündigung

Einklappen
Keine Ankündigung bisher.

von mySQL zu mySQLi OOP

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema von mySQL zu mySQLi OOP.

    von mySQL zu mySQLi OOP

    hi,

    ich möchte eines meiner alten Scripte umschreiben. Es handelt sich um ein kleines Forum welches über vier Dateien und nur einer einzigen SQL-Tabelle verfügt.

    Die index.php ist soweit kein Problem:
    PHP-Code:
    if ($stmt $mysqli->prepare('
    SELECT `id`, `titel`, `usw` FROM `forum` WHERE `titel`!=\'\' ORDER BY `lasttime` DESC '
    )){

    $stmt->execute(); 
    $stmt->store_result();
    $stmt->bind_result($id$titel$usw);

    while(
    $stmt->fetch()){
      echo 
    '<p>Mustertitel30</p>';
    }

    $stmt->close();
    }
                                    
    else {
    echo 
    '<pre>Fehler: '.$mysqli->error.'</pre>';

    Mustertitel hat z.b. 4 Antworten, ich bekomme aber nur das Topic angezeigt ohne die dazugehörigen Antworten und genau da ist mein Problem.

    Mein Ansatz war bisher:
    PHP-Code:
    // topic.php?id=30

    $id intval($_GET['id']);

    if (
    $stmt $mysqli->prepare('
    SELECT `id`, `titel`, `usw`, FROM `forum` WHERE `id` = ?'
    )){
    $stmt->bind_param('i',$id);
    $stmt->execute(); 
    $stmt->bind_result($id$titel$usw);

    while (
    $stmt->fetch()){
       echo 
    '<p>alle Antworten</p>';
    }

    $stmt->close();

    Mag mir jemand bei der formulieren der Abfrage helfen ?

    gruß Gianna

  • Gast-Avatar
    Ein Gast antwortete
    müsste ich dann 1x so:
    PHP-Code:
    $stmt $mysqli->prepare('SELECT `id`, `username`, `titel`, `usertext`, `lasttime`, `datum`, `lastuser`, `reply`, `tid`, `userip`, `klicks` FROM `forum` WHERE id = ?');
    $stmt->bind_param('i'$id);
    $stmt->execute();
    $stmt->bind_result($id$username$titel$usertext$lasttime$datum$lastuser$reply$tid$userip$klicks);
    $stmt->fetch();

    echo 
    '<p>'.$titel.'</p>';

    $stmt->close(); 
    und dann 1x mit white:
    PHP-Code:
    $stmt $mysqli->prepare('SELECT `id`, `username`, `titel`, `usertext`, `lasttime`, `datum`, `lastuser`, `reply`, `tid`, `userip`, `klicks` FROM `forum` WHERE tid = ?');
    $stmt->bind_param('i'$id);
    $stmt->execute();
    $stmt->bind_result($id$username$titel$usertext$lasttime$datum$lastuser$reply$tid$userip$klicks);

    while (
    $stmt->fetch()){
    echo 
    '<p>RE: '.$titel.'</p>';
    }

    $stmt->close(); 
    das scheint mir einfach zu viel Code :/ ... egal, ich teste das erst mal bevor ich hier weitere doofe Fragen stelle.

    Einen Kommentar schreiben:


  • kaptainIglo
    antwortet
    Du hast 2 Schleifen.
    Die erste, äußere Schleife, sucht alle Beiträge.

    PHP-Code:
    while ($stmt->fetch()){ 
       echo 
    '<p>alle Antworten</p>'

    In dies while Schleife legst Du die zweite, innere Schleife, und gibst alle Antworten aus.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    oops, hab versehentlich auf Enter gedrückt, war noch nicht fertig

    der Code ist ja so schön einfach, ich komme aber noch nicht so mit bind_param , execute, bind_result und fetch() zurecht

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    hi kaptainIglo,

    mal eben der "alte" Code:
    PHP-Code:
    if (isset($_GET['id']) && is_numeric($_GET['id'])){

    $id intval($_GET['id']);

    $sql1 "
    SELECT `id`, `username`, `titel`, `usertext`, `lasttime`, `datum`, `lastuser`, `reply`, `tid`, `userip`, `klicks` 
    FROM forum 
    WHERE id='
    $id' ";
    $res1 mysql_query($sql1);
    $row1 mysql_fetch_array($res1);

    echo 
    '<p>topic</p>';

    $sql2 "
    SELECT `id`, `username`, `titel`, `usertext`, `lasttime`, `datum`, `lastuser`, `reply`, `tid`, `userip`, `klicks` 
    FROM forum 
    WHERE tid='
    $id
    ORDER BY id ASC"
    ;
    $res2 mysql_query($sql2);
    while(
    $row2 mysql_fetch_array($res2)){

    echo 
    '<p>antworten</p>';

    }



    else {
    echo 
    '<pre>Fehler: Keine ID.</pre>';

    Einen Kommentar schreiben:


  • kaptainIglo
    antwortet
    Du solltest mehr Infos zur DB liefern.
    PHP-Code:
    SELECT `id`, `titel`, `usw`, FROM `forumWHERE `id` = ?
    Hier wirst Du vermutlich nur ein Ergebnis erhalten, weil es nur eine ID gibt.(?)

    Wo erkennst Du in der DB, das die Antworten einem Titel zugeordnet sind?

    Einen Kommentar schreiben:

Lädt...
X