Mysql PHP Automatische Seitenanzahl

  • Hallo,

    ich suche einen weg, Datensätze in ein PHP Document zu integrieren und gleichzeitig eine Seitenzahl aus Datensatzen, die man anklicken kann um durchzublättern.

    Also mit ner Variable $count = 15 oder so sollte die Anzahl der Ergebnisse bestimmen.

    Wie kann ich so etwas realisieren? Oder wo Infos finden?

    Danke euch und

    MfG

    Icke

  • Ich habe das Auslesen der Daten:

    Und da soll die Seitenzahl rein.

    Hier ein Anfang eines Zählers, aber ich werde daraus nicht schlau.

    Aber soetwas möchte ich dazu haben.

    Ich will ja nicht den fertigen Code, sondern ich brauche einen anschups wonach ich suche.

    Mysql PHP Datensatz mit Seitenzahl.

    Danke und MfG

    Icke

  • So das ist vileicht schon etwas zu viel, aber auf jedne fall soltest du so das Prinzip raffen:

  • nein habe ich leider nicht.
    ich lerne nach probieren und schaun.
    hier mein verständniss deines codes.

    list($eintraege)=mysql_fetch_row(mysql_query("SELECT COUNT(`id`) FROM `XY`"));
    ----------
    dies lässt die anzahl der datensätze erfassen.
    ----------

    $seite=(is_numeric($_REQUEST['seite']))1:$_REQUEST['seite'];
    ----------
    dies habe ich nicht entschlüssen können, da ich mit dem $_REQUEST nichts anfangen konnte. (variable $_REQUEST?)
    ----------

    $eintraege_pro_seite=15;
    ----------
    die erlaubte anzahl der ausgegebenen datensätze pro seite
    ----------

    $seiten=ceil($eintraege/$eintraege_pro_seite);
    ----------
    feststellen der seitenanzahl mit den verfügbaren daten
    ----------

    $start=$eintraege_pro_seite*($seite-1);
    $ende =$eintraege_pro_seite*$seite;
    ----------
    festlegung der variablen für die folgenden query
    ----------

    for($i=0; $i<=$seiten; $i++)
    {
    if ($i==$seite)
    {
    echo "$i";
    } else {
    echo "<a href=\"{$_SERVER['PHP_SELF']}?seite=$i\">$i</a>";
    }
    }
    ----------
    aufzählung der datensätze und deren resultierenden seiten
    (dies ist mir noch etwas zu hoch und ich würde es nie alleine schreiben können!)
    ----------

    $sql="SELECT * FROM XY LIMIT $start, $ende;"
    ----------
    wähle alles von (meine tabelle) begrenzt von $start und $ende
    ?>

    das in der schleife eine feststellung und vergleichung gemacht wird sehe ich, aber kannst mir den link "<a href=\"{$_SERVER['PHP_SELF']}?seite=$i\">$i</a>"; mal kommentieren.

    Und ich danke dir für die Antworten.

    Ich habe es nun so gelöst:
    (Nicht ICH, das ist das Problem, ich will sagen das ich es verstanden habe!)

    Deines bekomme ich nicht zum laufen weil der Code ab dem nummeric als fehler gezeigt wird.

    Bin nicht der Profi, aber ich lerne gerne dazu.

    Danke für alles

    Icke

  • So es fahren noch kleine flüchtigkeitsfehler drinn, nun geht es:

  • Toll geschrieben und für die Erklärungen danke ich dir am meisten.

    Dies sieht mir aber nicht funktionabel aus:

    Zitat


    $sql="SELECT * FROM XY LIMIT $start, $eintraege_pro_seite;"

    Ich habe es zu

    Zitat


    $sql=mysql_query("SELECT * FROM $adressdaten LIMIT $start, $eintraege_pro_seite");


    geändert.

    Danach hält er das Limit ein und zählt auch die Seiten mit, aber wenn ich von Seite 1 auf Seite 2 möchte , dann sehe ich in der URL das er wechselt, aber das Ergebnis der Seite bleibt unverändert.

    Ich kann auch mit vergleichen des anderen Zählers nichts feststellen ausser den Link der erzeugt wird mit der Zahl.

    Sonst ist soweit fast alles gleich.

    MfG

    Icke

  • ja an der Stelle habe ich aufgehört zu texten, ich bin davon ausgegangen das du selsbt auf die idee kommst das noch aus zu führen.

    So hier nochmal das ganze leicht modifieziert.

    Versuche das mal so und poste die Debugausgabe

    nicht wieder nur dein code verändern sondern komplett kopieren. Da es sonst wieder nicht gehen dürfte.

  • Zitat


    $sql="SELECT * FROM `".$adressdaten."` LIMIT $start, $eintraege_pro_seite;"

    Zitat


    $sql="SELECT * FROM `".$adressdaten."` LIMIT $start, $eintraege_pro_seite"; 

    Also es steht da:

    Code
    01234567You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-5, 5' at line 1
    SELECT * FROM adressdaten LIMIT -5, 5

    Nach drücken einer Zahl:

    Code
    01234567
    SELECT * FROM adressdaten LIMIT 0, 5

    Und

    Code
    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in E:\xampp\htdocs\veranstalltungen\test.php on line 65

    Zeile 65 enthält:

    Code
    while($row = mysql_fetch_assoc($sql))
  • zum letzten, lies dir den Letzten Satz durch den ich gepostet habe!!!!

    zu den ersten beiden, da muss denn irgent wo ein Berechnungsfehler sein.

    Also wenn du das wirklich so kopiert hast wie ich es gepostet habe:

    dann passiert folgendes: es ist keine seite angegebn und die Seite ist 1

    Das ergibt die Formel: 15*(1-1) was ja 0 ist deshalt müste dann LIMIT 0 , 15

    was eindeut richtig ist.

    Hilfe damit beendet.

    Wer nicht lesen kann ist selbst schuld.

  • Ja, ich hatte den letzten Satz echt überlesen.
    Ich änderte ja nur das Limit von 15 auf 5.

    Dies erscheint wenn ich die Seite das erste mal aufrufe.

    SQL
    SELECT * FROM `adressdaten` LIMIT -15, 15

    Klappt nur wenn die Seite geprüft wird

    Code
    if ($seite<1) $seite=1;


    Nach anklicken einer Zahl, werden 15 Datensätze gezeigt.

    SQL
    SELECT * FROM `adressdaten` LIMIT 0, 15

    Aber wenn man die zweite Zahl anklickt, passiert nichts, ich sehe noch die ersten 15 Datensätze und es hat sich nichts geändert.

    Naja hätte es gerne verstanden.

    Generve damit beendet.

    Trotzdem Danke für deine Zeit und Hilfe

    MfG

    Icke

  • Code
    $seite=(is_numeric($_REQUEST['seite']))?1:$_REQUEST['seite'];

    So hats geklappt

    Code
    $seite=(is_numeric($_REQUEST['seite'])  ? $_REQUEST['seite'] :1);

    MfG

    Icke