Problem beim Auflisten von allen Threads

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

  • Problem beim Auflisten von allen Threads

    Ich habe vor kurzer zeit angefangen, eine kleine Homepage zu programmieren und mit dem Forum für diese HP angefangen, doch jetzt bin ich auf ein Problem gestoßen:
    Ich möchte, dass mir PHP ALLE Threads ausgibt, die sich in der Datenbank befinden, jedoch gibt er immer nur einen einzigen Thread aus -.-
    Hier der Auslese-code für die Threads:

    $sql = "SELECT
    *
    FROM
    f_thread AS th,
    member AS m
    WHERE
    (th.th_fo_ID = '".$_GET['f_forum']."')
    AND
    (th.th_author = m.m_ID)
    ORDER BY
    th.th_date DESC";

    Und hier die While Abfrage, mit der ich alle Threads ausgeben lassen möchte:

    if(mysql_num_rows($result)) {
    while($row = mysql_fetch_assoc($result)) {
    //Hier ist dann der Programmcode, der die Infos zum Thread
    //ausgibt
    }
    }

    Könnt ihr euch erklären, warum er mir immer nur ein Thread anzeigt?
    Danke für eure Hilfe!

  • #2
    Was sagt mysql_num_rows, wenn du sein Ergebnis ausgibst?

    Kommentar


    • #3
      (obwohl es mir klar war, dass es ein Wert über sein wird, den er mir ausgibt, da er ja den Programmcode danach ausführt, aber halt nur für einen datensatz, habe ich es mir ncoh mal extra ausgeben lassen ^^)
      mysql_num_rows gibt den Wert 2 zurück...
      Da es 2 Datensätze gibt, in der Tabelle f_threads, die die Bedingungen erfüllen...
      Das Merkwürdige ist, dass ich bei dem Anzeigen der Beiträge das gleiche Prinzip angewandt habe und das funktioniert einwandfrei...

      Kommentar


      • #4
        Zeig mal den Programmcode asu der Schleife.

        Kommentar


        • #5
          Hier ist der (hoffentlich hilft der euch weiter):

          echo " <tr> \n";
          echo " <td> \n";
          if(isset($_SESSION['ID']) AND isset($_GET['section'])) {
          echo " <a href=\"index.php?section=".$_GET['section']."&amp;site=forum&amp;f_thread=".$row['th_ID']."&amp;".SID."\">\n\r";
          } elseif(isset($_SESSION['ID'])) {
          echo " <a href=\"index.php?section=member&amp;site=forum&amp;f_thread=".$row['th_ID']."&amp;".SID."\">\n\r";
          } else{
          echo " <a href=\"index.php?section=user&amp;site=forum&amp;f_thread=".$row['th_ID']."\"> \n";
          }
          echo " ".$row['th_name']." \n";
          echo " </a> \n";
          echo " </td> \n";
          echo " <td> \n";
          if(isset($_SESSION['ID']) AND (isset($_GET['section']))) {
          echo " <a href=\"index.php?section=".$_GET['section']."&amp;site=message&amp;action=send&amp;member=".$row['m_ID']."&amp;".SID."\">\n\r";
          } elseif(isset($_SESSION['ID'])) {
          echo " <a href=\"index.php?section=member&amp;site=message&amp;action=send&amp;member=".$row['m_ID']."&amp;".SID."\">\n\r";
          } else {
          echo " <a href=\"index.php?section=member&amp;site=member&amp;action=show&amp;member=".$row['m_ID']."\"> \n";
          }
          echo " ".$row['m_name']."\n";
          echo " </a> \n";
          echo " </td> \n";
          echo " <td> \n";
          $sql = "SELECT COUNT(*) AS anzahl FROM f_beitrag WHERE '".$row['th_ID']."' = be_th_ID";
          $result = mysql_query($sql,$db) OR die(mysql_error());
          $row_count = mysql_fetch_assoc($result);
          $anzahl = $row_count['anzahl'] - 1;
          echo " ".$anzahl."\n";
          echo " </td> \n";
          echo " <td> \n";
          echo " ".$row['th_hits']."\n";
          echo " </td> \n";
          echo " <td> \n";
          echo " </td> \n";
          echo " </tr> \n";

          Kommentar


          • #6
            Da kriegt man ja Augenkrebs! Bitte Code-Tags einfügen.
            Und wo ist daeine while-Schleife?

            Kommentar


            • #7
              PHP-Code:
                    if(mysql_num_rows($result)) {
                      while(
              $row mysql_fetch_assoc($result)) {
                        echo 
              "    <tr> \n";
                        echo 
              "      <td> \n";
                        if(isset(
              $_SESSION['ID']) AND isset($_GET['section'])) {
                          echo 
              "        <a href=\"index.php?section=".$_GET['section']."&amp;site=forum&amp;f_thread=".$row['th_ID']."&amp;".SID."\">\n\r";       
                        } elseif(isset(
              $_SESSION['ID'])) {
                          echo 
              "        <a href=\"index.php?section=member&amp;site=forum&amp;f_thread=".$row['th_ID']."&amp;".SID."\">\n\r";                   
                          } else{
                              echo 
              "        <a href=\"index.php?section=user&amp;site=forum&amp;f_thread=".$row['th_ID']."\"> \n";
                            }
                        echo 
              "          ".$row['th_name']." \n";
                        echo 
              "        </a> \n";
                        echo 
              "      </td> \n";
                        echo 
              "      <td> \n";
                        if(isset(
              $_SESSION['ID']) AND (isset($_GET['section']))) {
                          echo 
              "          <a href=\"index.php?section=".$_GET['section']."&amp;site=message&amp;action=send&amp;member=".$row['m_ID']."&amp;".SID."\">\n\r";
                        } elseif(isset(
              $_SESSION['ID'])) {
                            echo 
              "          <a href=\"index.php?section=member&amp;site=message&amp;action=send&amp;member=".$row['m_ID']."&amp;".SID."\">\n\r";      
                          } else {
                              echo 
              "        <a href=\"index.php?section=member&amp;site=member&amp;action=show&amp;member=".$row['m_ID']."\"> \n";
                            }
                        echo 
              "        ".$row['m_name']."\n";
                        echo 
              "        </a> \n";
                        echo 
              "      </td> \n"
                        echo 
              "      <td> \n";
                        
              $sql "SELECT COUNT(*) AS anzahl FROM f_beitrag WHERE '".$row['th_ID']."' = be_th_ID";
                        
              $result mysql_query($sql,$db) OR die(mysql_error());
                        
              $row_count mysql_fetch_assoc($result);
                        
              $anzahl $row_count['anzahl'] - 1;
                        echo 
              "        ".$anzahl."\n";
                        echo 
              "      </td> \n";
                        echo 
              "      <td> \n";
                        echo 
              "        ".$row['th_hits']."\n";
                        echo 
              "      </td> \n";
                        echo 
              "      <td> \n";
                        echo 
              "      </td> \n";
                        echo 
              "    </tr> \n";
                    }
                  } 
              Hatte die while schleife ja bereits gepostet und sie daher erstmal rausgelassen beim Post... naja jetzt ist sie wieder drin...

              Kommentar


              • #8
                Und du bist sicher, daß die Schleife nur 1x ausgeführt wird, und nicht z.B. im 1. Durchgang mit einem unsichtbaren Fehler abraucht?

                Kommentar


                • #9
                  Ein unsichtbarer Fehler?
                  hatte eigentlich gehofft, dass
                  PHP-Code:
                    error_reporting(E_ALL); 
                  ALLE Fehler anzeigt, oder ist das nicht so?

                  Kommentar


                  • #10
                    Du überschreibst $result in der Schleife!

                    Kommentar


                    • #11
                      Doch.
                      Hmm. Schau mal in den erzeugten Quelltext.
                      Wird dieser definitiv bis zum Ende generiert, und die 2. Zeile ist nicht dort?

                      EDIT:
                      PHP-Desaster war schneller und hat genauer geguckt

                      Kommentar


                      • #12
                        Man ey -.-
                        Dass ich das wieder nciht gesehen habe...
                        naja ich danke euch herzlich für eure Hilfe und werde demnächst genauer besonders auf solche Fehler achsten...
                        Nochmals: Danke!

                        Kommentar

                        Lädt...
                        X