Philip Naggert: Blättern in PHP - Anzeigefehler...

Hi,
ich hab jetzt eigentlich ein Blättern-Script in PHP fertig, jedoch wird eine Sache bei mir nicht so angezeigt, wie ich es möchte...

Zu sehen ist das bisher programmierte hier: http://www.fussball-pur.de/zitate.htm

In PHP umgesetzt hier: http://www.fussball-pur.de/zitate.php?kat=2

Wenn man unten jetzt auf Seite 2 klickt, wird alles korrekt angezeigt, nur in der Adressleiste erscheint Seite 1. Wenn ich jedoch jetzt für i=1 einsetze statt i=0, dann passt das alles nicht.

Mit viel Fuscherei hatte ich es einmal hinbekommen, aber es funktionierte nie wirklich einwandfrei...

Kann mir da einer weiterhelfen?

Danke
Philip

  1. Hallo Philip!

    Wenn man unten jetzt auf Seite 2 klickt, wird alles korrekt angezeigt, nur in der Adressleiste erscheint Seite 1.

    Anhang deines Scripts eigentlich auch richtig:

    for($i = 0; $i < $anzahl; $i++)
    {
    $p=($i+1);

    $p = "seite" + 1

    if ($i == $seite)
    {
      echo " <u>$p</u>";
    }
    else
    {
      echo " <a href=$linkset&kat=$kat&seite=$i>$p</a>";

    Hier siehst du es - seite = 0 / angezeigt wird $p = 1

    }
    }

    Wenn ich jedoch jetzt für i=1 einsetze statt i=0, dann passt das alles nicht.

    Ist auch klar, da du es so programmiert hast - oder ist das gar nicht von dir? Wenn Du die Seitenangabe in der Adresszeile "richtig" haben willst, musst Du dies dann eben vor dem Select-Statement und in erwähnter for-Schleife entsprechend berücksichtigen:

    $eseite = 30;
    $start = $seite*$eseite;

    mfg

    norbert =:-)

    1. Hi Norbert,
      hab mir nach Deinem Posting noch einmal meine Gedanken gemacht und es so gelöst, weiß nur nicht, ob es immer passt, von daher wollte ich Dich fragen, ob man das so umschreiben kann:

      <?
       if(!$seite) $seite=1;
       $eseite = 30;
       $start = ($seite-1)*$eseite;

      $tmp="SELECT * FROM liga_zitate, liga_zitate_akteure, liga_zitate_status WHERE liga_zitate_akteure.sid = $kat AND liga_zitate.aid = liga_zitate_akteure.aid AND liga_zitate_akteure.sid = liga_zitate_status.aid ORDER BY liga_zitate_akteure.nachname, liga_zitate_akteure.vorname DESC LIMIT $start,$eseite";
         $connect->do_query($tmp);
         while($connect->getrow()) {

      $grund=$connect->field("grund");
                      $zitat=$connect->field("zitat");
                      $nachname=$connect->field("nachname");
                      $vorname=$connect->field("vorname");
      ?>

      ...

      <?
          $num = mysql_num_rows(mysql_query("SELECT * FROM liga_zitate, liga_zitate_akteure WHERE liga_zitate_akteure.sid = $kat AND liga_zitate.aid = liga_zitate_akteure.aid"));
          $anzahl = $num/$eseite;
          $lseite = ceil($anzahl);

      echo "[ ";

      for($i = 1; ($i-1) < $anzahl; $i++)
       {
       if ($i == $seite)
         {
         echo " <u>$i</u>";
         }
         else
         {
         echo " <a href=$linkset&kat=$kat&seite=$i>$i</a>";
         }
       }

      echo " ]";
      ?>

      Danke für Deine Hilfe,
      Philip!

      1. Hallo Philip!

        Na sieht ja schon gut aus - aber:

        <?
         if(!$seite) $seite=1;

        Du kannst Dir sicher sein, dass es jemanden gibt, der sich in der Adresszeile "spielt" und daher auch mal Angaben übermittelt werden, die nicht nummerisch sind - also zB "...&seite=nixda" (gilt bei Bedarf auch für andere Fälle!).

        Dies solltest Du entsprechend Abfragen (in der Eile zusammengebastelt - eventuell verbesserungswürdig):

        /* Keine Seitenangabe übergeben, dann auf 0 setzen */
        if (!isset($seite))
        {
          $seite = 0;
        }
        else
        {
           if (is_numeric($seite))
           {
              /* Numerisch, aber keine Ganzzahl, daher 0 */
              if (!is_int($seite))
              {
                 $seite = 0;
              }
           }
           else
           {
              /* Nicht nummerisch, daher auf 0 setzen */
              $seite = 0;
           }
        }

        for($i = 1; $i <= $anzahl; $i++)

        Etwas "hübscher" formuliert ;-)

        Ansonsten viel Spaß mit dem Ding.

        mfg

        norbert =:-)