Problem beim Auflisten von allen Threads

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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?

    Comment


    • #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...

      Comment


      • #4
        Zeig mal den Programmcode asu der Schleife.

        Comment


        • #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";

          Comment


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

            Comment


            • #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...

              Comment


              • #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?

                Comment


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

                  Comment


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

                    Comment


                    • #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

                      Comment


                      • #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!

                        Comment

                        Working...
                        X