Wo steckt der fehler ?

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

  • Wo steckt der fehler ?

    Nabend,
    sitze schon einige Stunden an einer Blätterfunktion und es funktioniert nun auch einigermaßen, wenn da nicht ein fehler wäre der mir die Einträge klaut.

    Ich habe in meiner Datenbank 13 Einträge und ich will pro Seite nur 6 stk. ausgeben. Nur ist das Problem wenn ich ihm sage $maxproseite = 6; bekomme ich auf der ersten Seite 4 Einträge und auf der zweiten erst 6 ...

    PHP-Code:
    $sql = ("SELECT * FROM forum_topic");            
        
    $eintrage mysql_num_rows(mysql_query($sql));   
        
    $maxproseite 6;                           
        
    $seiten $eintrage $maxproseite;   

           
    $abeintrag $_GET['page'] * $maxproseite $maxproseite
           
    $sql "SELECT * FROM `forum_topic` ORDER BY `erstellt` DESC LIMIT ".$abeintrag.",".$maxproseite.";"

        for(
    $s 0$s $seiten$s++)

        
    $result mysql_query($sql); 
        while(
    $row mysql_fetch_row($result)) 
        {
    bla bla 
    Weiss jemand wo da der fehler liegt, vielleicht ist es einfach auch nur wieder zu spät

  • #2
    - gibt die zweite query das zurück, was du vermutest?
    - bist du dir sicher, daß die for-schleife so aussehen soll? sieht irgendwie so sinnlos aus. wozu ist die?
    - willst du wirklich ein forum programmieren, wenn du schon am blättern (bzw. - viel schlimmer - am debuggen) scheiterst?
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Naja ein Forum zu schreiben ist ja das einfachste was es gibt, Daten in die Datenbank schreiben und nur wieder rausholen und auswerten. Es ist noch nie ein Meister vom Himmel gefallen und da ich noch nie etwas Blättern musste, fällt es mir auch wesentlich schwerer das hinzubekommen

      Es Funktioniert eigentlich alles auch das Blättern, aber irgendwie ist da was faul ....

      PHP-Code:
          $sql "SELECT * FROM `forum_topic` ORDER BY `erstellt` DESC LIMIT 0,".$maxproseite.";"
      Wenn ich mir von 0 bis 6 alles anzeigen lassen will, bekomme ich nur 4 Einträge angezeigt.

      Die for Schleife zählt nur die Seiten die er mir unten anzeigen soll, sieht zwar doof da oben aus aber das funktioniert ohne Probleme. Die Seiten sind auch nicht das Problem die bekomme ich ja angezeigt nur die Einträge stimmen nicht wirklich.
      Zuletzt geändert von Mundgeruch; 30.06.2005, 07:20.

      Kommentar


      • #4
        Original geschrieben von Mundgeruch
        Naja ein Forum zu schreiben ist ja das einfachste was es gibt, Daten in die Datenbank schreiben und nur wieder rausholen und auswerten.
        anscheinend nicht...


        Wenn ich mir von 0 bis 6 alles anzeigen lassen will, bekomme ich nur 4 Einträge angezeigt.

        also so wie dein script da aussieht wirst du noch mehr probleme bekommen als blos die einträge
        ich wette du bekommst bei 13 einträgen keine 3 seiten
        und wenn doch dann nur weil php versucht einen fehler von dir auszubügeln was dann auch die 4 einträge auf der ersten seite erklären würde
        DENN 13 / 6 ergibt keine ganze zahl und wenn du keinen genauen befehl gibst lässts einfach das nach dem komma wegfallen...sprich wenn 3 nicht erreicht wird gibbet auch keine 3 seiten...
        daher würds auch ganz gut sein wenn du mal den script teil der ausgabe präsentieren würdest
        Zuletzt geändert von RanzigeMilch; 30.06.2005, 07:44.
        Die Milch bleibt ranzig!

        Kommentar


        • #5
          Guguck,
          Original geschrieben von Mundgeruch
          Naja ein Forum zu schreiben ist ja das einfachste was es gibt, Daten in die Datenbank schreiben und nur wieder rausholen und auswerten.
          --------------------------------------------------------------------------------



          anscheinend nicht...
          Seitenzahlen haben wenig mit der Ausgabe zu tun Kann auch ohne Seitenzahlen leben, aber das schaut unprofessionell aus.


          Aber ich bekomme 3 Seiten angezeigt, aber nur durch die for Schleife

          DENN 13 / 6 ergibt keine ganze zahl und wenn du keinen genauen befehl gibst lässts einfach das nach dem komma wegfallen
          Japp da wird auch mein Problem liegen, wenn ich feierabend habe schau ich mir das ganze nochmal an.

          War gestern auch einfach zu spät und ...

          Kommentar


          • #6
            öhm eine seitenzahl ist eine ausgabe....
            und forum ohne seiten zahl ist für mich kein forum sondern ne baustelle
            daher s.o. ...

            irgendwie seh ich in dem script aber keine schleife
            ich dachte immer schleifen haben eine Bedingung in ()
            und dann das zu wiederholende in {}
            wo sind deine {}s abgebliebn?

            wiegesagt der teil zur ausgabe wär ma ganz hilfreich...
            Die Milch bleibt ranzig!

            Kommentar


            • #7
              Jaja hast recht

              Bis 18 Uhr muss ich noch arbeiten, danach werde ich mich weiter um das Problem kümmern und ggf. euch weiter nerven

              Kommentar


              • #8
                hihi
                dann sitz ich aber net mehr im büro
                Die Milch bleibt ranzig!

                Kommentar


                • #9
                  Hast du es gut Surfen und nebenher arbeiten, dazu finde ich leider kaum Zeit. Bin aber nun zuhause und bastel seit 18 Uhr an dem Blättern und bin etwas weiter aber da stimmt noch immer etwas nicht.

                  PHP-Code:
                      $sql = ("SELECT * FROM forum_topic WHERE topic_id = '1'");            
                      
                  $eintrage mysql_num_rows(mysql_query($sql));   
                      
                  $maxproseite 7;                           
                      
                  $seiten $eintrage $maxproseite;   
                      
                  $seiten ceil($seiten);

                      
                  $abeintrag $_GET['page'] * $maxproseite
                      echo 
                  "    $abeintrag / $maxproseite";
                         
                  $sql "SELECT * FROM `forum_topic` ORDER BY `erstellt` DESC LIMIT ".$abeintrag.",".$maxproseite.";"

                      
                  $result mysql_query($sql); 
                      while(
                  $row mysql_fetch_row($result)) 
                      {
                          if (
                  $row[1] == "1"#damit er nur die Foren der ID 1 rausholt
                          
                  {
                  bla bla 
                  Die Seitenzahl stimmt immer, ich habe nun 13 einträge und diese werden mir als Seitenzahl korrekt angezeigt. Wenn ich das Forum öffne ist $_GET['page'] immer 1.

                  Bei echo " $abeintrag / $maxproseite";

                  bekomme ich auf der ersten Seite die ausgabe 7 / 7 und auf der zweiten Seite 14 / 7. Eigentlich müsste ich ja erste Seite 0 / 7 haben oder ist das egal?

                  So wie ich das versteh holt er sich die Einträge von 7 bis 14 ... aber ich habe auf der ersten Seite trotzdem 7 Einträge und auf Seite zwei 1 von insg. 13.

                  Versteh ich alles nicht wirklich

                  Kommentar


                  • #10
                    So bin etwas weiter gekomme und einige Fragen haben sich doch noch geklärt.

                    Habe nun



                    PHP-Code:
                        $sql "SELECT * FROM forum_topic WHERE topic_id = '1'";            
                        
                    $eintrage mysql_num_rows(mysql_query($sql));   
                        
                    $maxproseite 12;                           
                        
                    $seiten ceil($eintrage $maxproseite);   
                        
                        
                    $abeintrag $_GET['page'] * $maxproseite $maxproseite

                        echo 
                    "    $abeintrag / $maxproseite / $seiten / $eintrage";
                           
                    $sql mysql_query("SELECT * FROM `forum_topic` ORDER BY `erstellt` DESC LIMIT ".$abeintrag.",".$maxproseite.""); 

                        while(
                    $row mysql_fetch_row($sql)) 
                        {
                            if (
                    $row[1] == "1"#damit er nur die Foren der ID 1 rausholt
                            
                    {
                    bla bla 
                    Problem ist nun das ich zwar alle meine Einträge ausgelesen bekomme, aber von den 13 Einträgen in der Datenbanl werden mir nur 10 auf der ersten Seite angezeigt und auf der zweiten Seite die restlichen 3 obwohl

                    echo " $abeintrag / $maxproseite / $seiten ";

                    ausgabe

                    0 / 13 / 1

                    ist, also auslesen von 0 bis 13 ... weiss nur nicht wieso ?
                    Zuletzt geändert von Mundgeruch; 30.06.2005, 21:56.

                    Kommentar


                    • #11
                      Irgendwie paßt der Code nicht zu deiner Aussage/Ausgabe.

                      Das if() kannst du dir übrigens sparen, wenn ...
                      Code:
                      SELECT * FROM forum_topic WHERE topic_id = 1 ORDER BY erstellt DESC LIMIT $abeintrag,$maxproseite

                      Kommentar


                      • #12
                        Moin,
                        joh stimmt die if ist überflüssig, das mit dem Code versteh ich ehrlich gesagt auch nicht. Ich bekomme alles richtig ausgegeben, aber dennoch ist da der wurm drin.

                        Habe mal $maxproseite = 3; gemacht so das eigentlich bei 13 Einträge 5 Seiten sind.

                        Diese 5 Seiten habe ich auch, aber

                        Seite 1 = 2 Einträge
                        Seite 2 = 2 Einträge
                        Seite 3 = 3 Einträge
                        Seite 4 = 3 Einträge
                        Seite 5 = 3 Einträge

                        macht zusammen zwar auch 13 Einträge aber die sind irgendwie komisch verteilt.

                        Kommentar


                        • #13
                          Nachtrag: Mist es lag an der If Abfrage, die habe ich die ganze Zeit überlesen und vergessen zu löschen.

                          Blättern klappt nun einwandfrei, Danke

                          Kommentar

                          Lädt...
                          X