Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Hilfe ... PHP-Froum mit Mysql

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Hilfe ... PHP-Froum mit Mysql

    Hallo PHPer,

    ich bin ein 'Neuling' in PHP und MYSQL.
    Ich habe jetzt ein sehr einfaches PHP-Forum geschrieben, mit Anbindung an MySQL.

    Jetzt mein Problem:
    Es funktioniert gut (http://www.jtsc-griesheim.de/forum/showforum.php, nur ich hätte gerne im Forum aufgelistet, wieviele Antworten ein Thread hat. Hab es schon mit count versucht (vielleicht mache ich es auch falsch), aber ich komme nicht drauf. Ich hoffe jemand von Euch kann mir helfen

    Ich wollte das ganze auch in die Ausgabe schleife integrieren, vielleicht ist das ja auch falsch.
    Noch einige Daten:
    Es gibt 3 Tabellen (Forum, ForumThreads, ForumAnswers) in MySQL.
    In ForumAnswers werden alle Antworten gespeichert und mit einer Forumsid (fid) und einer ThreadID (tid) bestückt, um dem thread zugewiesen zu werden.

    Ich hab mir gedacht, mit count könnte ich irgendwie nur die mit der gleichen 'tid' zählen und bei der ausgabeschleife mit ausgeben (denkfehler?)

    Danke für hoff. viele Antworten :wink:
    Fussel

  • #2
    in die while-schleife zum auslesen der threads muss folgender query:
    Code:
    SELECT COUNT(*) AS answers FROM Froumanswers WHERE tid=$tid AND fid=$fid
    die variable $fid beinhaltet die forum id das aktuellen forums (bei jedem schleifen-durchgang gleich)
    die variable $tid die thread id (ändert sich bei jedem durchgang der schleife da die id aus der datenbank gelesen wird)

    Kommentar


    • #3
      nur, wie mach ich dann die ausgabe?
      so: ?
      Code:
      $erg = mysql_query("select count(*) AS answers from ForumAnswers ...");
      echo $erg; ??? //Fehlermeldung.
      Wie kann ich das gecountete ausgeben?

      Kommentar


      • #4
        Hier nochmal meine Schleife der Thread ausgabe:

        Code:
        $res = mysql_query("select * from ForumThreads where fid=".$_GET["fid"]);
        
        while($row = mysql_fetch_array($res)){
        	echo "<hr><font face=Verdana size=2>";
        	echo "<a href=\"showanswers.php?fid=".$row["fid"]."&tid=".$row["id"]."\">";
        	echo $row["topic"]."</a>
        ";
        	echo "erstellt:  ".$row["created"]."</font>";
        	
        	//$result = mysql_fetch_array("select count(id) from ForumAnswers where fid=".$row["fid"]."AND tid=".$row["tid"]);
        	//echo $result;
        }
        echo "<hr>";

        Kommentar


        • #5
          so muss das dann aussehen:
          Code:
          res = mysql_query("select * from ForumThreads where fid=".$_GET["fid"]); 
          
          while($row = mysql_fetch_array($res)){ 
            $fid=$_GET['fid'];
            $tid=$row['tid'];
             echo "<hr><font face=Verdana size=2>"; 
             echo "<a href=\"showanswers.php?fid=".$row["fid"]."&tid=".$row["id"]."\">"; 
             echo $row["topic"]."</a>
          "; 
             echo "erstellt:  ".$row["created"]."</font>"; 
              
           $result = mysql_query("select count(*) AS answers from ForumAnswers where fid='$fid' AND tid='$tid'"); 
           $array=mysql_fetch_array($result);
          echo $array['answers'];
          } 
          echo "<hr>";

          Kommentar


          • #6
            hm .... das geht ohne fehlermeldung (warnign)
            aber er zeigt mir dann bei allen eine null an, obwohl der eine beitrag
            schon antworten hat...

            Kommentar


            • #7
              dann guck mal bei jedem durchgang was in den variablen $fid und $tid drinsteht...
              und stell diese zeile hier:
              Code:
              $fid=$_GET['fid'];
              mal vor die schleife

              Kommentar


              • #8
                das ergibt eine 1,
                was ja auch richtig ist, da es sich um die froums_id 1 handelt

                und eine 2 im zweiten forum


                wie püberprüfe ich, was in tid steht? auch mit query und fetch?

                Kommentar


                • #9
                  am ende der schleife:
                  Code:
                  echo $tid;

                  Kommentar


                  • #10
                    http://www.jtsc-griesheim.de/forum/s...eads.php?fid=1

                    da zeigt er nichts, siehe link.
                    hier noch mal meine ganze schleife in abgeänderter form:

                    Code:
                    $res = mysql_query("select * from ForumThreads where fid=".$_GET["fid"]);
                    
                    while($row = mysql_fetch_array($res)){
                    	
                    	echo "<hr><font face=Verdana size=2>";
                    	echo "<a href=\"showanswers.php?fid=".$row["fid"]."&tid=".$row["id"]."\">";
                    	echo $row["topic"]."</a>
                    ";
                    	echo "erstellt:  ".$row["created"]."</font>";
                    	
                    	$result = mysql_query("select count(*) AS answers from ForumAnswers where fid='$fid' AND tid='$tid'");
                     	$array = mysql_fetch_array($result);
                    	echo " Antworten: ".$array['answers'];
                    	echo " Thread-ID: ".$tid;
                    }
                    aber danke schon mal für deine tatkräftige unterstützung. und deine geduld mit mir :wink:

                    Kommentar


                    • #11
                      hier noch ein auszug aus den datenbank einträgen:


                      id tid fid user topic text created
                      17 14 1 Flo Forum Halli hallo,

                      es ist leider bis jetzt nur ein se... 2004-07-02 15:59:41
                      18 15 1 Helmut HP Eine gute und notwendige Sache, das Forum.
                      Vielle... 2004-07-02 16:01:57
                      19 16 1 Flo Themen??? Was könnten alles für Themen auf der Hauptübersich... 2004-07-02 16:02:31
                      20 15 1 flo man weiß es nicht ;o)
                      kennst das ja 2004-07-02 16:03:07
                      21 17 2 Angie WM Wir waren Spitze!!!! 2004-07-02 16:08:27
                      22 17 2 flo ja, ihr wart spitze! Nochmal dickes Lob! 2004-07-02 16:31:13

                      Kommentar


                      • #12
                        du hast das hier am anfang der schleife vergessen:
                        Code:
                        $fid=$_GET['fid']; 
                          $tid=$row['tid'];

                        Kommentar


                        • #13

                          passiert auch nichts ...

                          Meine Schleife:
                          Code:
                          $res = mysql_query("select * from ForumThreads where fid=".$_GET["fid"]);
                          
                          while($row = mysql_fetch_array($res)){
                          	$fid=$_GET['fid'];
                           	$tid=$row['tid'];
                          	echo "<hr><font face=Verdana size=2>";
                          	echo "<a href=\"showanswers.php?fid=".$row["fid"]."&tid=".$row["id"]."\">";
                          	echo $row["topic"]."</a>
                          ";
                          	echo "erstellt:  ".$row["created"]."</font>";
                          	
                          	$result = mysql_query("select count(*) AS answers from ForumAnswers where fid='$fid' AND tid='$tid'");
                           	$array = mysql_fetch_array($result);
                          	echo " Antworten: ".$array['answers'];
                          	echo " Thread-ID: ".$tid;
                          }

                          Kommentar


                          • #14
                            kann man denn das so machen?
                            denn tid kommt ja nur in Tabelle ForumAnswers , nicht aber in FroumThreads vor.

                            ich meine wegen am Anfang der Schleife:
                            $tid=$row['tid'];

                            Kommentar


                            • #15
                              hat der thread keine tid zur identifizierung???
                              [edit]hab mir dein code noch mal angeguckt das muss dann so aussehen:
                              Code:
                              $tid=$row['id'];

                              Kommentar

                              Lädt...
                              X