Wer kann mir das mal erklären?

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

  • #16
    Ich denke, dass Hauptproblem liegt wirklich an $letztes. Da hier keine Werte drinstehen, fügt er an den falschen Stellen z.Bsp "I" und nicht "S" ein.

    Wo hast du denn den "Mist" her. Am besten neuprogrammieren.

    Aber ich gebe die Hoffnung noch nicht auf und such noch etwas weiter.

    Kommentar


    • #17
      Hier aus dem Forum.
      Die Änderungen hat ein Admin gemacht.

      hier ist der Link dazu:
      http://www.php-resource.de/forum/sho...&threadid=2272 dort sind sie an der gleichen stelle stehen geblieben. Ich hab ja noch einen Code der das macht, kann ihn aber nicht umsetzen.
      *winks*
      Gilbert
      ------------------------------------------------
      Hilfe für eine Vielzahl von Problemen!!!
      http://www.1st-rootserver.de/

      Kommentar


      • #18
        Moin,

        ich denke ich habe die Lösung gefunden, zumindest dein Beispiel funktioniert jetzt. Ich habe auch noch zwei andere Beispiele getestet, und das Ergebnis sieht gut aus.

        Du musst nur zwei Zeilen einfügen

        PHP-Code:
        ...
        $n mysql_num_rows($sql_id);
        $letztes[$level-1] = $n;  // <-- neu
        ... 
        und

        PHP-Code:
        ...
        output_threaded ($pid$msg[id], $level+1);
        $letztes[$level-1]--;  // <-- neu
        ... 
        Wenn $level jetzt 0 ist, wird zwar an Position -1 des Arrays geschrieben, aber PHP scheint das nicht weiter zu "stören"


        Ups, habe noch was vergessen:
        Die beiden

        if ($letztes[$m])

        in der "Langform" müssen noch zu

        if ($letztes[$m]==1)

        werden.
        Zuletzt geändert von fusiba; 17.08.2002, 09:42.

        Kommentar


        • #19
          Hab jetzt die Änderungen so gemacht wie du gesagt hast. Doch bleibt immer noch ein Fehler da. Siehe Bild. Dort wo der Pfeil ist müsst ein $i_gif sein.
          Angehängte Dateien
          *winks*
          Gilbert
          ------------------------------------------------
          Hilfe für eine Vielzahl von Problemen!!!
          http://www.1st-rootserver.de/

          Kommentar


          • #20
            hmm, bei mir ist an der Stelle ein "i.gif"

            Also hier noch mal der komplette Code wie er bei mir aussieht

            PHP-Code:
            <?php
            $db 
            mysql_connect("localhost""""");
            mysql_select_db("tmp");
            $table "forum";

            $t_gif '<IMG SRC="images/t.gif" BORDER=0 ALT="">';
            $l_gif '<IMG SRC="images/l.gif" BORDER=0 ALT="">';
            $p_gif '<IMG SRC="images/p.gif" BORDER=0 ALT="">';
            $m_gif '<IMG SRC="images/m.gif" BORDER=0 ALT="">';
            $c_gif '<IMG SRC="images/c.gif" BORDER=0 ALT="">';
            $i_gif '<IMG SRC="images/i.gif" BORDER=0 ALT="">';
            $n_gif '<IMG SRC="images/n.gif" BORDER=0 ALT="">';
            $space_gif '&nbsp;&nbsp;&nbsp;';

            function 
            output_threaded ($pid$parent$level)
                {
                global 
            $table;
                global 
            $t_gif,$l_gif,$p_gif,$m_gif,$c_gif,$i_gif,$n_gif,$space_gif;
                static 
            $letztes = array();

                
            $sql_id mysql_query ("SELECT a.*, count(b.id) AS hatantwort FROM $table AS a LEFT JOIN $table AS b ON b.parent=a.id WHERE a.thread='$pid' AND a.parent='$parent' GROUP BY a.id")or die(mysql_error());
                
            $n mysql_num_rows($sql_id);
                
            //echo "<tr><td>NNN".$n.'/'.$level.'</td></tr>';
                
            $letztes[$level-1] = $n;
                
                for (
            $count=0$msg mysql_fetch_assoc($sql_id); $count++)
                    {
                    echo 
            "<tr bgcolor=\"#dfdfdf\"><td>";

            // Langform
                    
            for ($m=0$m<$level-1$m++)
                        {
                        if (
            $letztes[$m]==1)
                            {
                            echo 
            $space_gif;
                            }
                        else
                            {
                            echo 
            $i_gif;
                            }
                        }

                    if (
            $m<$level)
                        {
                        if (
            $letztes[$m]==1)
                            {
                            echo (
            $l_gif);
                            }
                        else
                            {
                            echo (
            $t_gif);
                            }
                        }

                    if (
            $msg["hatantwort"])
                        {
                        echo 
            $m_gif;
                        }
                    else
                        {
                        if (
            $level || $count)
                            {
                            echo 
            $c_gif;
                            }
                        else
                            {
                            echo 
            $n_gif;
                            }
                        }


                    echo 
            "<font> <a href=\"show.php?id=".$msg[id]."\">Subject (".$msg[id].")</font></a></td>
                    <td><font>userId</font></td>
                    <td><font>date</font></td>
                    </tr>\n"
            ;        
                    
            output_threaded ($pid$msg[id], $level+1);
                    
            $letztes[$level-1]--;
                    }
            }


            //output_threaded($post_id, 0, 0);
            echo '<table border=0 cellpadding="0" cellspacing="0">';
            output_threaded(100);
            echo 
            "</table>";
            ?>
            Wir kriegen das schon noch hin

            Kommentar


            • #21
              Diese schleife musste noch ausgeweitet werden.
              PHP-Code:
                      for ($m=0$m<$level-1$m++)
                          {
                          if (!
              $letztes[$m])
                              {
                              echo 
              $space_gif;
                              }
                          else
                              {
                              if(
              $letztes[$m]==1)
                                  {
                                  echo 
              $space_gif;
                                  }
                              else
                                  {
                                  echo 
              $i_gif;
                                  }
                              }
                          } 
              Und jetzt geht es. Dank dir fusiba. Schau mal unter Code-Schnippsel rein.
              Zuletzt geändert von Wotan; 17.08.2002, 12:53.
              *winks*
              Gilbert
              ------------------------------------------------
              Hilfe für eine Vielzahl von Problemen!!!
              http://www.1st-rootserver.de/

              Kommentar


              • #22
                Was anderes.

                Wie bekomme ich es jetzt hin, das sich die Zeilen immer mit den Farben abwechseln.

                Dafür habe ich mir das eingebaut, geht aber nicht.
                PHP-Code:
                    if(($row_color%2)==0)// Farbwechsler
                           
                {
                        
                $bg="#dfdfdf";
                        }
                    else
                        {
                        
                $bg="#cfcfcf";
                        }
                    
                $sql_id mysql_query ("SELECT a.*, count(b.id) AS hatantwort FROM $table AS a LEFT JOIN $table AS b ON b.post_parent=a.id WHERE a.post_thread='$pid' AND a.post_parent='$parent' GROUP BY a.id ORDER BY a.post_date")or die(mysql_error());
                    
                $n mysql_num_rows($sql_id);
                    
                $letztes[$level-1] = $n;  // <-- neu
                    
                    
                for ($count=0$msg mysql_fetch_assoc($sql_id); $count++)
                        {
                        if(!IsSet(
                $row_color_cnt))// Farbwechsler
                            
                {
                            
                $row_color_cnt=0;
                            }

                        
                $row_color_cnt++;
                        
                        echo 
                "<tr bgcolor=\"$bg\">
                        <td>"

                *winks*
                Gilbert
                ------------------------------------------------
                Hilfe für eine Vielzahl von Problemen!!!
                http://www.1st-rootserver.de/

                Kommentar


                • #23
                  $row_color_cnt sollte static sein, und die modulo-Abfrage muss in die For-Schleife

                  PHP-Code:
                  static $row_color_cnt=0;

                      
                  $sql_id mysql_query ("SELECT a.*, count(b.id) AS hatantwort FROM $table AS a LEFT JOIN $table AS b ON b.post_parent=a.id WHERE a.post_thread='$pid' AND a.post_parent='$parent' GROUP BY a.id ORDER BY a.post_date")or die(mysql_error());
                      
                  $n mysql_num_rows($sql_id);
                      
                  $letztes[$level-1] = $n;  // <-- neu
                      
                      
                  for ($count=0$msg mysql_fetch_assoc($sql_id); $count++)
                          {
                          
                          if((
                  $row_color_cnt%2)==0)// Farbwechsler
                             
                  {
                          
                  $bg="#dfdfdf";
                          }
                          else
                          {
                          
                  $bg="#cfcfcf";
                          }

                          
                  $row_color_cnt++;
                          
                          echo 
                  "<tr bgcolor=\"$bg\">
                          <td>"

                  ..sollte gehen.

                  Kommentar


                  • #24
                    Da kommt nur das raus, das hatt ich auch schon gehabt. Siehe Bild

                    Hatte das Static vergesen einzubauen. Jetzt geht es. Ich werde dich bei berni zum Stern-Ritter vorschlagen.
                    Angehängte Dateien
                    *winks*
                    Gilbert
                    ------------------------------------------------
                    Hilfe für eine Vielzahl von Problemen!!!
                    http://www.1st-rootserver.de/

                    Kommentar


                    • #25
                      ja, ich glaube ich habe heute meinen sozialen Tag, also frage lieber noch schnell was, bevor ich es mir wieder anders überlege

                      Kommentar


                      • #26
                        Weiter brauch ich erstmal keine Hilfe. Aber wenn ich noch fragen habe werde ich sie wieder im PHP-Forum stellen.

                        Nochmals tausend Dank an dich.
                        *winks*
                        Gilbert
                        ------------------------------------------------
                        Hilfe für eine Vielzahl von Problemen!!!
                        http://www.1st-rootserver.de/

                        Kommentar

                        Lädt...
                        X