AnalphaBestie: news script - fehler ?

Moin alle.

Ich habe nen news script gemacht. Dabei hatte ich ein bisschen hilfe von nem bekannten, der mir erklärte wie ich es machen soll usw. Der ist allerdings net mehr da ;=)
Naja auf jeden fall, die news werden richtig angezeigt bloss mit den kommentaren klappt irgendwass net. Die theorie ist mir bekannt:
In den kommentar db ist nen feld "zu" dort werden die id's der news gespeichert zu denen die kommentare gemacht sind.
Die ausgabe funzt allerdings net.
Wenn zb 5 kommentare abgegeben sind zeigt er immer den letzten kommentar 5 mal an... ?

Ich werd mal nicht viel quellcode posten, lieber nen link:
http://www.ackro.de/index.phps da wird wohl der fehler nicht liegen und:
http://www.ackro.de/modules.phps

wäre lieb wenn ihr mal nen blick draufwerfen könntet,
Analpha

  1. grml
    PW und Username test1

  2. Hi AnalphaBestie,

    1.

    http://www.ackro.de/index.phps -> Authorisation Required
    http://www.ackro.de/modules.phps -> Authorisation Required

    2.
    Selbst wenn man die Seiten aufrufen könnte würde man nur die Ausgabe sehen und nicht den Quellcode, oder?

    Ciao Michi

      Selbst wenn man die Seiten aufrufen könnte würde man nur die Ausgabe sehen und nicht den Quellcode, oder?

      Doch: Die Endung phps startet einen internen PHP-Viewer mit Syntax-Highlighting. Ernst!
      CU
      http://www.yubb.de

    1. Hi AnalphaBestie,

      Moin

      http://www.ackro.de/index.phps -> Authorisation Required
      http://www.ackro.de/modules.phps -> Authorisation Required

      er lese bitte den nachtrag ( pw und username test1 )

      Selbst wenn man die Seiten aufrufen könnte würde man nur die Ausgabe sehen und nicht den Quellcode, oder?

      doch phps interpretiert der browser nicht als php dateien, man sieht nur den quellcode

      Ciao Michi

      Analphabestie ( michael ;) )

    2. Hi AnalphaBestie,

      http://www.ackro.de/index.phps -> Authorisation Required
      http://www.ackro.de/modules.phps -> Authorisation Required

      --> hat sich erledigt, sorry.

      Selbst wenn man die Seiten aufrufen könnte würde man nur die Ausgabe sehen und nicht den Quellcode, oder?

      --> hab da 'n kleines s übersehen.

      function showcoments() {
              $comentsresult = mysql_query("SELECT * FROM newscoments WHERE zu=."$newsid." order by id desc");
              if ($comentsrow = mysql_fetch_array($comentsresult)) {
      /* do bezeiht sich nur auf den einen kommentar! Dieser wird deshalb 5x angezeigt !!! */
                  do {
                      $comentsid =   $comentsrow[id];
                      $comentsdate = date("$this->dateformat", $comentsrow[date]);
                      $comentszu =   $comentsrow[zu];
                      $comentsmail = $comentsrow[postermail];
                      $comentstext = $comentsrow[text];
                      $comentsip =   $comentsrow[ip];

      echo "<p> $comentsid <br>
                                $comentsdate <br>
                                $comentszu <br>
                                $comentsmail <br>
                                $comentstext <br> </p> \n";
                  } // do
                  while($newsrow = mysql_fetch_array($comentsresult));
              } // if
          } // function */

      Folgendes SOLLTE funktionieren:

      function showcoments() {
              $comentsresult = mysql_query("SELECT * FROM newscoments WHERE zu=."$newsid." order by id desc");
        $num_cols = mysql_numrows ($comentsresult);
        $counter = 0;

      while ($counter < $num_cols)
       {
         $comentsid =   @mysql_result($comentresult, $counter, "id");
         $comentsdate = date("$this->dateformat", @mysql_result($comentresult, $counter, "date"));
         $comentszu =   @mysql_result($comentresult, $counter, "zu");
         $comentsmail = @mysql_result($comentresult, $counter, "postermail");
         $comentstext = @mysql_result($comentresult, $counter, "text";
         $comentsip =   @mysql_result($comentresult, $counter, "ip");

      echo "<p> $comentsid <br>
                                $comentsdate <br>
                                $comentszu <br>
                                $comentsmail <br>
                                $comentstext <br> </p> \n";

      $counter = $counter + 1;
        } //while
      } //function

      1. Hi AnalphaBestie,

        Moin nochmal,

        danke auf jeden fall für die müher ;)
        aber es klappt noch nicht so ganz, und ich begreif nicht so richtig warum ...

        function showcoments() {
                $comentsresult = mysql_query("SELECT * FROM newscoments WHERE zu=".$newsid." order by id desc");
           $num_cols = mysql_numrows($comentsresult);
           $counter = 0;
            while ($counter < $num_cols)
             {
             $comentsid = @mysql_result($comentresult, $counter, "id");
             $comentsdate = date("$this->dateformat", @mysql_result($comentresult, $counter, "date"));
             $comentszu = @mysql_result($comentresult, $counter,  "zu");
             $comentsmail = @mysql_result($comentresult, $counter, "postermail");
             $comentstext = @mysql_result($comentresult, $counter, "text");
             $comentsip = @mysql_result($comentresult, $counter,  "ip");

        echo "<p> $comentsid <br>
                           $comentsdate <br>
                           $comentszu <br>
                           $comentsmail <br>
                           $comentstext <br> </p> \n";
             $counter = $counter + 1;
           } //while
         } //function

        so habe ich es jetzt stehen, er bringt die fehlermeldung:
        Fatal error: Call to undefined function: lala() in /is/htdocs/27676/www.ackro.de/modules.php on line 55
        line 55:    $num_cols = mysql_numrows($comentsresult);
        wo nimmst du das mysql_numrows() her ?

        erklärung wäre nett, dann kann ich es das nchste mal alleine machen...

        MFg Analpha

        1. Hi AnalphaBestie,

          erklärung wäre nett, dann kann ich es das nchste mal alleine machen...

          Hab das ganze auch nur aus nem Buch, und hab da offensichtlich ein paar Funktionen durcheinander gebracht. Versuch mal folgende Änderung:

          function showcoments() {

          mysql_connect ($hostname, $user, $password);
            $comentsresult = mysql($database, "SELECT * FROM newscoments WHERE zu='.$newsid.' order by id desc");
             $num_cols = mysql_numrows($comentsresult);

          ...

          MfG Michi

      2. Aloha!

        Folgendes SOLLTE funktionieren:

        WAHHHH!!!1 Komplizierter gehts nimmer! Lieber so:

        function showcoments()
        {
          $cmomentsresult = mysql_query("SELECT * FROM newscoments WHERE zu=."$newsid." order by id desc");

        while ($row = mysql_fetch_array($commentresult))
          {
            echo "<p>{$row['id']}<br>".date("$this->dateformat", $row['date'])."<br>{$row['zu']}<br>{$row['postermail']}<br>{$row['text']}<br>{$row['ip']}</p>\n";
          }
        }

        Frage: Was soll bitteschön der komische Parameter in der Date-Funktion bewirken? Sieht wie ein Objektzugriff aus. Der ist hier im Quelltext nicht näher erwähnt und sollte vielleicht einer kritischen Betrachtung unterzogen werden.

        Ansonsten ist die Variante viel kürzer, als alle anderen Varianten, weil mysql_fetch_array() einfach die nächste Zeile der Datenbankabfrage als Hash zurückliefert. Damit kann man sich viel Zuweisungsarbeit sparen.

        - Sven Rautenberg