[Datensätze zählen] Wo ist der Fehler..?

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

  • #16
    Ich habe schon nachgesehen, eigentlich erscheint es für mich logisch in der Tabelle answers die Datensätze abzufragen die die gleich Topic-ID haben, da die dann alle zu einem Thread gehören. Und das habe ich da ja auch gemacht. Och mensch, ich weiß nicht weiter und hinke nur noch mit der Sache hinterher. Kann mir keiner einene kleinen Gedankenstoß geben?

    Kommentar


    • #17
      Hat denn keiner sowas gemacht?
      Ich meine, es geht hier nur um einen logischen Fehler, also will ich ja nur die Logik, die sich dahinter verbirgt wissen. Das wäre echt supernett, weil das ist mir momentan ein Dorn im Auge.Vielleicht kann Martin Mayer sich ja dazu äussern, wie er das gemacht hat!? Wäre echt schön.

      Dankbar für jegliche Art von Antwort,
      Alex

      Kommentar


      • #18
        prinzip.....




        Code:
        alle threads auflisten. -> thread-id ist damit bekannt.
        
        schleife
        {
           jeden thread ausgeben
           
           unterabfrage nach allen posts für oben bekannte thread.id
           schleife
           {
              ausgabe der posts
           }
         
           // oder eben unterabfrage nur mit count für die anzahl machen.
           
        }
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #19
          Danke Abraxax, habe ich mir so hingebastelt.
          Jedoch sagt er immer noch Fehler in der Abfragenzeile (2. Abfrage in der 2. while Schleife). Langsam vergeht mir der Spaß!
          Was mache ich denn jetzt wieder falsch...

          PHP-Code:
          <? 
          //Herstellen der MySQL verbindung 
          include("db_connect.php");



          $sql = "select * from threads where fid=".$_GET["fid"];
              $res =  mysql_query($sql) or die(mysql_error());  
              echo '<p><a href="index.php?go=newthread&fid='.$_GET['fid'].'"><img src="images/new_thread.gif" border="0"></a></p>';

                 while($row =  mysql_fetch_object($res))
              {
                          echo "<tr><td bgcolor='#A9AAAB' width='550' class='rahmen'>";
                          echo "<font class='schwarz'>&raquo&nbsp;&nbsp;<a href='index.php?go=showanswers&fid=".$row->fid."&tid=".$row->id."'>";
                          echo $row->topic."</a></td><td bgcolor='#A9AAAB' width='100' class='rahmen' align='center'>";


                
                while($row =  mysql_fetch_object($res2))   
              {        
                  $sql2 = "SELECT * FROM answers WHERE tid=".$row->tid."";
                  $res2 = mysql_ fetch_object($sql2) or die(mysql_error());                                                
                          echo "<font class='schwarz'>";
                          echo ''.mysql_num_rows($res2).'';
                         echo "</td>";
              }    
              }
              
          ?>

          Kommentar


          • #20
            wenn du nur die anzahl ausgeben willst, kannst du das bestimmt auch anders machen. und zwar in nur einer abfrage...

            wenn das feld tid in beiden tabellen vorhanden ist, kannst du beide tabellen verbinden.

            PHP-Code:
            $sql "SELECT      T.tid ThreadId,
                                T.topic,
                                COUNT(A.tid) Posts
                    
                    FROM        threads T
                                    LEFT OUTER JOIN answers A USING (tid)
                        
                    WHERE       T.fid="
            .$_GET['fid']."
                    
                    GROUP BY    T.tid, T.topic"

            probier es mal aus.
            Zuletzt geändert von Abraxax; 15.07.2003, 14:24.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #21


              Also ich verstehe zwar ein bisschen SQL , aber das ist dann doch nur für Freaks . Ich habe deins eingebaut in der Hoffnung es zum laufen zu bekommen. Jetzt bekomme ich ne Meldung mit unexpected T_String...

              Naja ok, können wir das nicht mit der 2 SChleifen Variante machen? Das wäre für mich übersichtlicher und verständlicher

              Kommentar


              • #22
                Naja ok, können wir das nicht mit der 2 SChleifen Variante machen? Das wäre für mich übersichtlicher und verständlicher
                und dauert länger....


                zeige mal ein wenig code von dir. auch zeige mir mal, wo genau der fehler kommt.


                teste die query mal so im phpmyadmin und gibt im eine fixe fid.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #23
                  Den gesamten?

                  Kommentar


                  • #24
                    ja. einfach mal
                    Code:
                    $sql = "SELECT      T.tid ThreadId,
                                        T.topic,
                                        COUNT(A.tid) Posts
                            
                            FROM        threads T
                                            LEFT OUTER JOIN answers A USING (tid)
                                
                            WHERE       T.fid=1
                            
                            GROUP BY    T.tid, T.topic
                    in phpmyadmin als sql eintragen.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #25
                      habe den fehler gefunden.....

                      da war ein " zu wenig nach GROUP BY T.tid, T.topic

                      jetzt sollte es passen....
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #26
                        PHP-Code:
                        <table border="0" cellpadding="3" cellspacing="5" width="650" height="100%" align="center" class="table">
                          <tr>
                                <td bgcolor="#424447" width="550" class="rahmen"><b><font class='weiss'>Ge&ouml;ffnete Threads:</b></font></td>
                                <td bgcolor="#424447" width="100" class="rahmen"><b><font class='weiss'>Beitr&auml;ge:</b></font></td>
                          </tr>
                        <? 
                        //Herstellen der MySQL verbindung 
                        include("db_connect.php");



                        $sql = "select * from threads where fid=".$_GET["fid"];
                            $res =  mysql_query($sql) or die(mysql_error());  //Herauslesen der Threads, die in dem Forum stehen

                            echo '<p><a href="index.php?go=newthread&fid='.$_GET['fid'].'"><img src="images/new_thread.gif" border="0"></a></p>';

                               while($row =  mysql_fetch_object($res))
                            {
                                        echo "<tr><td bgcolor='#A9AAAB' width='550' class='rahmen'>";
                                        echo "<font class='schwarz'>&raquo&nbsp;&nbsp;<a href='index.php?go=showanswers&fid=".$row->fid."&tid=".$row->id."'>";
                                        echo $row->topic."</a></td><td bgcolor='#A9AAAB' width='100' class='rahmen' align='center'>";


                              
                              while($row =  mysql_fetch_object($res2))   
                            {        
                                $sql2 = "SELECT      T.tid ThreadId,
                                            T.topic,
                                            COUNT(A.tid) Posts
                                
                                FROM        threads T
                                                LEFT OUTER JOIN answers A USING (tid)
                                    
                                WHERE       T.fid=".$_GET['fid']."
                                
                                GROUP BY    T.tid, T.topic";

                                $res2 = mysql_ fetch_object($sql2) or die(mysql_error());                                                
                                        echo "<font class='schwarz'>";
                                        echo ''.mysql_num_rows($res2).'';
                                       echo "</td>";
                            }    
                            }
                            
                        ?>

                        </tr>
                        <tr>
                           <td height="50">
                        </tr>
                        </table>


                        SQL ABFRAGE via PHPmyAdmin mache ich zwischenzeitig...

                        Kommentar


                        • #27
                          mache mal noch das vergessene " rein. dann sollte es passen....

                          und deine zwei schleifen kannst du knicken. du hast jetzt NUR eine abfrage.
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #28
                            Ich sehe gerade , meine Tabelle Threads hat gar kein $tid Feldnamen, wie denn auch...
                            --------------------------------------
                            EDIT:
                            $tid....nicht $fid, hatte mich verschrieben
                            Zuletzt geändert von chickendeath; 15.07.2003, 14:30.

                            Kommentar


                            • #29
                              ALTER CODE:

                              PHP-Code:
                              <table border="0" cellpadding="3" cellspacing="5" width="650" height="100%" align="center" class="table">
                                <tr>
                                      <td bgcolor="#424447" width="550" class="rahmen"><b><font class='weiss'>Ge&ouml;ffnete Threads:</b></font></td>
                                      <td bgcolor="#424447" width="100" class="rahmen"><b><font class='weiss'>Beitr&auml;ge:</b></font></td>
                                </tr>
                              <? 
                              //Herstellen der MySQL verbindung 
                              include("db_connect.php");



                              $sql = "select * from threads where fid=".$_GET["fid"];
                                  $res =  mysql_query($sql) or die(mysql_error());  //Herauslesen der Threads, die in dem Forum stehen

                                  echo '<p><a href="index.php?go=newthread&fid='.$_GET['fid'].'"><img src="images/new_thread.gif" border="0"></a></p>';

                                     while($row =  mysql_fetch_object($res))
                                  {
                                              echo "<tr><td bgcolor='#A9AAAB' width='550' class='rahmen'>";
                                              echo "<font class='schwarz'>&raquo&nbsp;&nbsp;<a href='index.php?go=showanswers&fid=".$row->fid."&tid=".$row->id."'>";
                                              echo $row->topic."</a></td><td bgcolor='#A9AAAB' width='100' class='rahmen' align='center'>";


                                    
                                    while($row =  mysql_fetch_object($res2))   
                                  {        
                                      $sql2 = "SELECT * FROM answers WHERE tid=".$row->tid."";
                                      $res2 = mysql_ fetch_object($sql2) or die(mysql_error());                                                
                                              echo "<font class='schwarz'>";
                                              echo ''.mysql_num_rows($res2).'';
                                             echo "</td>";
                                  }    
                                  }
                                  
                              ?>

                              </tr>
                              <tr>
                                 <td height="50">
                              </tr>
                              </table>


                              Sory für den Aufwand den ich dir bereite!

                              Kommentar


                              • #30
                                die tabelle threads hat doch das feld fid...

                                $sql = "select * from threads where fid=".$_GET["fid"];
                                teste jetzt mal bitte meine query ! unter phpmyadmin
                                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                                Kommentar

                                Lädt...
                                X