Problem mit kleinem Forum

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

  • Problem mit kleinem Forum

    Hallo,

    ich habe ein problem mit meinem ersten "Forum".
    Es sind mehrere Einträge vorhanden.
    Sobald in den neusten beitrag mehr als ein Kommentar ist
    fängt die ganze sache an verückt zu spielen sobald 2 Kommentare
    vorhanden sind wird der 2te Beitrag nicht mehr angezeigt,
    sobalt 3 Kommentare sind wird der 2 und 3 Beitrag nicht mehr angezeit
    usw....

    Dort steht dann immer folgender text:

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\www\test\news.php on line 42


    PHP-Code:
    <?php
    require('connect.php');

    $sql="SELECT ID, absender, betreff, message, datum FROM
    $tabellenname ORDER BY datum DESC";

    $result mysql_query($sql$link);

    for(
    $i=0;$i<mysql_num_rows($result);$i++)
    {
    $ergebnis[$i]=mysql_fetch_array($result);
    }

    for(
    $i=0;$i<count($ergebnis);$i++)
    {

    echo
    "<center>";
    echo
    "<table border=1 width=400>";
    echo
    "<tr>";
    echo
    "<td width=50%><font size=2><div align=left><b>".$ergebnis[$i][betreff]."</b></div></font></td>";
    echo
    "<td width=50%><font size=1><div align=right>".$ergebnis[$i][datum]."</div></font></td>";
    echo
    "<tr>";
    echo
    "<td colspan=2>".$ergebnis[$i][message]."</td>";
    echo
    "</tr>";
    echo
    "<tr>";
    echo
    "<td width=50%><font size=2><div align=left>".$ergebnis[$i][absender]."</div></font></td>";
    echo
    "<td width=50%><font size=2><div align=right>Kommentare ";

    $idw=$ergebnis[$i][ID] ;
    $idk=$ergebnis[$i][ID] ;

    $sql2="SELECT kid, kommentar, name FROM $tabelle2 WHERE kid=$idk";

    $result_k mysql_query($sql2$link);

    for(
    $k=0;$k<mysql_num_rows($result_k);$k++)
    {
    $ergebnis[$k]=mysql_fetch_array($result_k);
    }
    echo 
    "<b>".$k."</b>";

    echo 
    "<a href='kommentare.php?id=$idw'>";
    echo
    " Ansehen</a></div></font></td>";
    echo
    "</tr>";
    echo
    "</table>";
    echo
    "<br><hr><br>";
    echo
    "</center>";
    }
    ?>

    </center>
    </body></html>
    Währe über hilfe sehr dankbar!!!

  • #2
    verwende or die(mysql_error()) und du wirst fündig werden.
    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


    • #3
      Re: Problem mit kleinem Forum

      Hi,
      die Verwendung der For-Next-Schleife ist problematisch. Ich hab´s mal umgestellt, aber nicht getest. Wenn ich dein Prog richtig verstanden habe, sollte es so klappen:
      PHP-Code:
      <?php
      require('connect.php');

      $sql="SELECT ID, absender, betreff, message, datum FROM $tabellenname ORDER BY datum DESC";
      $result mysql_query($sql$link);

      while (
      $ergebnis mysql_fetch_array($result)) {

          echo
      "<center>";
          echo
      "<table border=1 width=400>";
          echo
      "<tr>";
          echo
      "<td width=50%><font size=2><div align=left><b>".$ergebnis['betreff']."</b></div></font></td>";
          echo
      "<td width=50%><font size=1><div align=right>".$ergebnis['datum']."</div></font></td>";
          echo
      "<tr>";
          echo
      "<td colspan=2>".$ergebnis['message']."</td>";
          echo
      "</tr>";
          echo
      "<tr>";
          echo
      "<td width=50%><font size=2><div align=left>".$ergebnis['absender']."</div></font></td>";
          echo
      "<td width=50%><font size=2><div align=right>Kommentare ";

          
      $idw=$ergebnis['ID'];
          
      $idk=$ergebnis['ID'];

          
      // Anzahl der Kommentare ermitteln ($k)
          
      $sql2="SELECT kid, kommentar, name FROM $tabelle2 WHERE kid=$idk";
          
      $result_k mysql_query($sql2$link);
          
      $k mysql_num_rows($result_k);

          echo 
      "<b>".$k."</b>";

          echo 
      "<a href='kommentare.php?id=$idw'>";
          echo
      " Ansehen</a></div></font></td>";
          echo
      "</tr>";
          echo
      "</table>";
          echo
      "<br><hr><br>";
          echo
      "</center>";
      }
      ?>

      </center>
      </body></html>
      Probier´s mal aus. Wenn´s nicht geht schreib hier nochmal was rein.

      Das ganze kann man noch vereinfachen:
      PHP-Code:
      $idk=$ergebnis['ID']; 
      wird nicht gebraucht.
      Die Ermittlung der Anzahl kann man auch mittels
      PHP-Code:
           $sql2="SELECT count(*) FROM $tabelle2 WHERE kid=$idk";
           
      $row mysql_fetch_row ($result);
           
      $k $row[0]; 
      machen, ich weiss aber nicht, ob das schneller ist.


      By
      Christoph
      Zuletzt geändert von cst; 25.08.2003, 09:56.
      Ich denke, also bin ich.
      Manche sind trotzdem!

      Kommentar

      Lädt...
      X