Problem mit kleinem Forum

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

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


    Comment


    • #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
      Last edited by cst; 25-08-2003, 08:56.
      Ich denke, also bin ich.
      Manche sind trotzdem!

      Comment

      Working...
      X