Markus: Blätter funktion

Hi Leute ich komme einfach nicht weiter mein Ziel ist es das, wenn meine datenbank ausgelesen wird, nur die ersten 5 Einträge erscheinen und man sich dann per vor und zurück Button weiter navigieren kann.

Doch leider klappt das nicht. Er gint mir zwar schon nur die ersten 5 Einträge aus doch wenn ich dann auf "vor" klicke geschieht nichts?
Was mach ich falsch:

include('Contact.Class.php');
include_once('ContactAddress.Class.php');
include_once('ContactExtras.Class.php');

class Contacts
{

public $ContactArray = array();

public function getData($i_id, $buchstabe)
 {

// Datendefinition für die Clientausgabe
  $start = (isset($start)) ? abs((int)$start) : 0;
  $limit = 1;   // Datensätze pro Ausgabeseite

$result = "Select Count(ContactID) From ".AppDB::$table_cus_contact;
  $total = DBConst::getDataDb($result);

$start    = ($start >= $total) ? $total - $limit : $start;

if( $i_id > 0 )
  {
   // "Wir haben einen Übergabeparameter *freude*";
   $sql_userdata = "Select * From ".AppDB::$table_cus_contact." WHERE ContactID = ".$i_id;
  }
  else
  {
   // "Wir haben keinen Übergabeparameter :-( ... Default-Statement ausführen!";

$sql_userdata = "Select * From ".AppDB::$table_cus_contact." LIMIT ".$start.",".$limit;
   // Zurück- und Vorblättern
  }

if( $buchstabe != "")
  {
   $sql_userdata = "Select * From ".AppDB::$table_cus_contact." WHERE lastname like '$buchstabe%'";

}

$result = DBConst::getDataDb($sql_userdata);

$arr_Contacts = array();

foreach ($result as $dbrow) {

$obj_Contacts = new Contact();
   $obj_Contacts->ID = $dbrow['ContactID'];
   $obj_Contacts->Firstname = $dbrow['firstname'];
   $obj_Contacts->Lastname = $dbrow['lastname'];
   $obj_Contacts->Middlename = $dbrow['middelname'];
   $obj_Contacts->Pic = $dbrow['picname'];

$this->ContactArray = $arr_Contacts;

if ($start > 0)
  {
   $newStart = ($start - $limit < 0) ? 0 : ($start-$limit);
   echo "<a href=".$_SERVER['PHP_SELF']."?start=".$newStart
   .">&lt;&lt; zurück</a>";
  }

if ($start + $limit < $total)
  {
   echo $start;
   echo $limit;
   $newStart = $start + $limit;
   echo " <a href=".$_SERVER['PHP_SELF']."?start=".$newStart
   .">vor &gt;&gt;</a>";
  }
 }

}
?>

Ich habe mich nach diesem BSP. hier gerichtet http://www.php-faq.de/q/q-mysql-seitenweise.html

Bitte helft mir ich weiß nicht was ich falsch mache

  1. hi,

    Doch leider klappt das nicht. Er gint mir zwar schon nur die ersten 5 Einträge aus doch wenn ich dann auf "vor" klicke geschieht nichts?
    Was mach ich falsch:

    Du hast, wenn ich das richtig sehe, noch nicht einmal $_GET zum Auslesen des start-Parameters verwendet - ist auf deiner Kiste register_globals tatsächlich noch auf on?

    Und die Ergebnisse deiner Debugausgaben vermisse ich in deiner Problembeschreibung ebenfalls.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Ja aber auf dr BSP webseite wird doch auch $_GET verwendet oder?

      http://www.php-faq.de/q/q-mysql-seitenweise.html

      1. Du meinst wohl auch NICHT $_GET verwendet oder?  ANsonnsten amcht der Satz wenig Sinn.
        wenn register_globals = off ist dann kann er mit $start nichts anfangen (ausser du definierst es erst). Weil eben die Variablen nicht global sind also musst du zumbeispiel $_GET['start'] schrieben um zu bestimmen dass diese var. aus dem GET kommen soll.

        Ob das der fehler ist - kein Ahnung. Poste doch mal etwas genauer was passiert wenn du auf vor klickst.

        1. Also wenn ich auf "vor" klicke sieht es so aus als ob er die Form an sich selbst abschickt allerdings erscheinen wieder die selben ergebnisse er geht also nicht eine seite weiter.

          Hoffe das hilft euch etwas mehr aber die idee mit dem $_Get ist logisch werde das mal ausprobieren.

          1. Ok hört sich so an als obs wirklich daran liegt. Wenn du die gleiche
            seite wiederbekommst heißt das ja, dass er anscheinend den startwert (der über die URL übermittelt wird nciht bekommt...

          2. Hallo,

            bevor da noch mehr schiefgeht: nimm lieber $_GET statt $_get. PHP ist nämlich case-sensitive (soll heißen: achtet auf Groß/Kleinschreibung)

            SCNR

            liebe Grüße

            mbr

      2. hi,

        Ja aber auf dr BSP webseite wird doch auch $_GET verwendet oder?

        Wenn ich

        // Daniel T. Gorski  dtg/240900/18:49/01

        dort richtig deute, ist dieses Beispielscript vom September 2000 - dass du fast sechs Jahre später, beim Lesen des Scriptes mit Verstand, veraltete Techniken auf aktuelle anpasst, darf doch wohl erwartet werden ...?

        Und wieso gehst du auf meine Rückfrage nach den Ergebnissen deiner Debugausgaben bitte nicht ein?
        Nervst du uns hier etwa mit deinen Problemen, _ohne_ vorher elementare Debuggin-Schritte selber durchgeführt zu haben!?!

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }