[PHP] frage bezüglich Abfrage und ausgabe

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [PHP] frage bezüglich Abfrage und ausgabe

      Also habe da eine Frage, ich bin derzeit am versuchen die teilausgabe von einen in den News (Forum) stehende auf der Homepage auszugeben.
      Nur mein Problem ist ich weiß nicht wie ich die Abfrage aufbauen soll, dass für die 5 neuesten Threads im News Bereich die Abfrage ist.
      (ich weiß ja das ich zu jeder threadID die niedrigste postID brauche, nur bekomme das nicht hin)

      derzeit sieht mein Code so aus

      Quellcode

      1. $con = mysql_connect($my_host, $my_user, $db_pass);
      2. mysql_select_db($newsdb);
      3. $query3 = mysql_query("SELECT * FROM wbb1_1_post ORDER by threadID DESC LIMIT 1");
      4. while($row2 = mysql_fetch_array($query3)){
      5. $query1 = mysql_query("SELECT * FROM wbb1_1_post ORDER by threadID DESC LIMIT 5");
      6. while($row = mysql_fetch_array($query1)){
      7. $reihe = $row['threadID'];
      8. $query2 = mysql_query("SELECT * FROM wbb1_1_post WHERE threadID = $reihe");
      9. $comments = mysql_num_rows($query2)-1;
      10. echo '
      11. <u><b>'.$row2['subject'].'</b></u><font size="-1"> ::: '.date("d.m.Y",$row2['time']).' - Kommentare ('.$comments.')</font><br>
      12. '.smarty_modifier_truncate($row2['message']).'<br><a href="http://'.$weblink.'/board/index.php?page=Thread&threadID='.$row2['threadID'].'" target=_blank><b><font size="-1">[mehr...]</font></b></a></b></u></i></div><br><br>
      13. <div align="right"><i>mfg '.$row2['username'].'</i></div><br>';
      14. }}
      Alles anzeigen
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Also ich sehe da schon 3 Fehler.
      1. Du benutzt 2x ne Whileschleife, die kein richtiges ergebnis bringen kann.
      2. du gibst 2 querys die unterschiedliche limits haben
      3. du gibst nur einmal einen thread aus.
      aber ich bin da um zu helfen, daher hier deine Lösung:

      Quellcode

      1. $con = mysql_connect($my_host, $my_user, $db_pass);
      2. mysql_select_db($newsdb);
      3. $query1 = mysql_query("SELECT * FROM wbb1_1_post ORDER by threadID DESC LIMIT 5");
      4. while($row = mysql_fetch_array($query1)){
      5. $reihe = $row['threadID'];
      6. $query2 = mysql_query("SELECT * FROM wbb1_1_post WHERE threadID = $reihe");
      7. $comments = mysql_num_rows($query2)-1;
      8. echo '
      9. <u><b>'.$row2['subject'].'</b></u><font size="-1"> ::: '.date("d.m.Y",$row2['time']).' - Kommentare ('.$comments.')</font><br>
      10. '.smarty_modifier_truncate($row2['message']).'<br><a href="http://'.$weblink.'/board/index.php?page=Thread&threadID='.$row2['threadID'].'" target=_blank><b><font size="-1">[mehr...]</font></b></a></b></u></i></div><br><br>
      11. <div align="right"><i>mfg '.$row2['username'].'</i></div><br>';
      12. }
      Alles anzeigen

      das sollte schonmal eher gehen.
      ausserdem empfehle ich, einfach nach datum zu sortieren, bringt glaube ich mehr^^
      sollte es noch mehr probleme geben, poste einfach
    • Tabelle: topics -> ID / Title
      Tabelle: posts -> ID / TopicID / Message
      Habe ich das so in etwa richtig verstanden?

      Wenn ja:
      SELECT `p`.`Message` FROM `topics` AS `t`, `posts` AS `p` WHERE `t`.`ID` = '[TabellenID]' AND `p`.`TopicID` = `t`.`ID` ORDER BY `p`.`ID` ASC LIMIT 1;
    • nein das ist alles in einer Tabelle

      Quellcode

      1. postID, threadID, parentPostID, userID, username, subject, message, time


      sind die wichtigstens Spalten die auch für die Ausgabe gebraucht werden.

      nur mit golgenden query zeigt er mir auch die kommentare an

      SQL-Abfrage

      1. SELECT * FROM wbb1_1_post ORDER by threadID DESC LIMIT 5



      wie das dann aussieht kann man sehen wenn man auf den Banner in meiner sig klickt
    • Nein zeigt er nioch
      die kommentare muss du asugeben lassen, erst dann zeigt er sie an
      denn er sucht nur die ergebnisse aus der db und gibt sie zurück.
      und per echo $row['bla'] gibst du die spalte bla aus (sofern du mysql_fetch_array nutzt)
      und das tutst du ja
      also die kommentare sind irgendwo im echo drin versteckt und werden daher ausgegeben