tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
697
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    Hi,

    Ich habe hier mal ein Script, für me Seiteneinteilung von Datensätzen in PHP.

    Leider funktioniert das nicht, obwohl ich es genau nach einem Tutorial gemacht habe.

    Die Ausgabe von den Seitenzahlen habe ich jetzt mal nicht eingebaut, das hab ich zu testzwecken noch weggelassen und über die URL gesteuert.

    PHP-Code:
    // Variablen
    $daten_pro_seite 10;
    // Prüfe, ob seite angegeben wurden ist
    if ($seite == null)
        {
        
    $seite 1;
        }

    $untergrenze $seite*$daten_pro_seite-$daten_pro_seite;
    $obergrenze $seite*$daten_pro_seite;

    // MySQL Abfrage, wenn es der Fall zulässt
    $datencounter $datencounter +1;

    if(
    $datencounter $untergrenze && $datencounter <= $obergrenze)
    {
       
    $zaehler='0';
       
    $kleine=mysql_query("SELECT id FROM questbook ORDER BY id DESC LIMIT $untergrenze,$obergrenze");
       
    $zeilen=mysql_num_rows($kleine);

       while(
    $zaehler $zeilen)
       {
          
    $fetch=mysql_fetch_array($kleine);
          echo 
    "$fetch[id]<br>";
          
    $zaehler++;
       }

    Ich hoffe, ihr könnt mir (schnell) weiterhelfen, schonmal danke *schleim
    Geändert von Experience1986 (20.02.03 um 18:24 Uhr)
     

  2. #2
    Registriert seit
    Jul 2001
    Ort
    Schweiz
    Beiträge
    837
    Ja was genau funktioniert denn nicht?

    Wenn die Leute nicht schreiben was sie WIRKLICH WISSEN WOLLEN, ist es schwer ihnen zu helfen.
     
    Das maximale Volumen subterraner Agrarprodukte steht in reziproker Relation zur spirituellen Kapazität des Produzenten.
    (Die dümmsten Bauern haben die grössten Kartoffeln.)

    Mein Technologie Blog: http://www.freeworld.net/blog/

  3. #3
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    naja ein paar zeilen kann man so lassen

    if ($seite == null) tauschen gegen if(!ifset($seite))

    die untergrenze /obergrenze macht so erstmal kein sinn

    da müsste man ev mehr wissen

    was mir fehlt ist die abfrage wieviel datensätze überhaupt da sind ...

    und die sqlabfrage muss auch verbessert werden

    limit startwert(auch offset genannt),anzahl der reihen
     

  4. #4
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    also, meine einteilung geht jetzt, das problem war, das sich $obergrenze auch immer + 10 geworden ist, doch die muss immer auf 10 bleiben, kleiner struttel fehler.

    jetzt müsste ich nur noch wissen, wie man die links aus gibt, also Seite 1, 2, 3....

    Aber nur so viel, wie auch angezeigt werden können, also nicht seite 26662, wenn es nur 4 seiten gibt

    Momentan sind 42 Datensätze in meiner DB.
     

  5. #5
    Registriert seit
    Jul 2001
    Ort
    Schweiz
    Beiträge
    837
    SELECT COUNT(*) FROM tabelle
    Das ist der Query.

    Dann musst du Anzahl geteilt durch $daten_pro_seite.

    $i = 1;
    while ($i < $daten_pro_seite + 1) {
    echo "<a href=\"deineseite.php?seite=" . $i . "Seite" . $i;
    $i++;
    }
     
    Das maximale Volumen subterraner Agrarprodukte steht in reziproker Relation zur spirituellen Kapazität des Produzenten.
    (Die dümmsten Bauern haben die grössten Kartoffeln.)

    Mein Technologie Blog: http://www.freeworld.net/blog/

  6. #6
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    @Terrance...
    den Code, den du mir gegeben hast, zählt bis 10, aber ansonsten geht es.

    Ist es nicht korrekter, wenn man es so mach: $zeilen ist die Datensatz-Höhe:

    PHP-Code:
    $i 1;
    while (
    $i $zeilen/$daten_pro_seite) {
    echo 
    "<a href=\"deineseite.php?seite=" $i "\">Seite" $i "</a> ";
    $i++;


    Da kommt aber in dem Fall ne 4.2 raus (42 Datensätze / 10 daten_pro_seite)

    Müsste man doch dann aufrunden, aber wie?
     

  7. #7
    Registriert seit
    Jul 2001
    Ort
    Schweiz
    Beiträge
    837
    Ups. Sorry. Ich hab ja oben geschrieben "Dann musst du Anzahl geteilt durch $daten_pro_seite.". Das hab ich dann aber vergessen auch in die Schleife einzufügen.

    Ja so müsste es gehn.
     
    Das maximale Volumen subterraner Agrarprodukte steht in reziproker Relation zur spirituellen Kapazität des Produzenten.
    (Die dümmsten Bauern haben die grössten Kartoffeln.)

    Mein Technologie Blog: http://www.freeworld.net/blog/

  8. #8
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    habe ich jetzt gerade ausprobiert, nur durch das Limit in der Abfrage ist der Anzahl der Datensätze ja immer auf 10, und daher ist $zeilen immer zehn und nicht die gesamte Anzahl der Datensätze in meiner Tabelle.

    Muss ich dan extra ne neue Query mache?
     

  9. #9
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    Ok, hier mal der ganze Code, hab halt die gesamte Zahl nun doch noch mit na Extra Query gemacht. Leider urndet die Schleife ab, aber sie muss logischer weise ja eigentlich aufrunden, so das auch die letzte Seite angezeigt wird:

    PHP-Code:
    // Variablen
    $daten_pro_seite 10;
    // Prüfe, ob seite angegeben wurden ist
    if ($seite == null)
        {
        
    $seite 1;
        }

    $untergrenze $seite*$daten_pro_seite-$daten_pro_seite;
    $obergrenze $daten_pro_seite;

    // MySQL Abfrage, wenn es der Fall zulässt
    $datencounter $datencounter +1;


       
    $zaehler='0';
       
    $kleine=mysql_query("SELECT id, vorname, datum, nachname, email, icq, msn, entry, comment FROM questbook ORDER BY id DESC LIMIT $untergrenze,$obergrenze");
       
    $zeilen=mysql_num_rows(mysql_query("SELECT id comment FROM questbook ORDER BY id DESC"));



    $i 1;
    while (
    $i $zeilen/$daten_pro_seite) {
    echo 
    "<a href=\"test.php?seite=" $i "\">Seite" $i "</a> ";
    $i++;
    }



    echo 
    "<hr>Ausgabe von Variablen:<br>
    Untergrenze: 
    $untergrenze<br>
    Obergrenze: 
    $obergrenze<br>
    DatenCounter: 
    $datencounter<br>
    Seite: 
    $seite<br>
    DatenProSeite: 
    $daten_pro_seite<br>
    Zeilen: 
    $zeilen

    <hr>"
    ;


       while(
    $zaehler $zeilen)
       {
          
    $fetch=mysql_fetch_array($kleine);
          echo 
    "$fetch[id]<br>";
          
    $zaehler++;
       } 

    Ich hab im Manuale schon gegugt, aber da wird nur die round(9 funktion angeboten, nur bringt mir das nichts, denn es muss zum Beispiel bei 4.2 auf 5 AUF gerundet werden und nich auf 4.0 ab gerundet werden.

    Was gibt es da noch für möglichkeiten?
     

  10. #10
    Registriert seit
    Jul 2001
    Ort
    Schweiz
    Beiträge
    837
    Du musst doch garnicht runden. Es gibt automatisch die richtige Seitenzahl. Eigentlich müsste man noch + 1, aber da die Schleife mit 0 startet gehts.
     
    Das maximale Volumen subterraner Agrarprodukte steht in reziproker Relation zur spirituellen Kapazität des Produzenten.
    (Die dümmsten Bauern haben die grössten Kartoffeln.)

    Mein Technologie Blog: http://www.freeworld.net/blog/

  11. #11
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    ne, es werden nur 4 seiten ausgegeben und 42/10 ist ja 4.2, es wird also abgerundet. Und bei 4 Seiten fehlt in diesem Fall immer noch 2 Datensätze

    Meiner meinung nach, müsste man da aufrunden, oder?
     

  12. #12
    Registriert seit
    Jul 2001
    Ort
    Schweiz
    Beiträge
    837
    Dann mach doch + 0.9 und dann runde ab. Dann sollts stimmen.
     
    Das maximale Volumen subterraner Agrarprodukte steht in reziproker Relation zur spirituellen Kapazität des Produzenten.
    (Die dümmsten Bauern haben die grössten Kartoffeln.)

    Mein Technologie Blog: http://www.freeworld.net/blog/

  13. #13
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    ja, in dem fall, aber was ist, wenn ich als ergebnis 4,6 als ergebniss habe, dann + 0,9 dann wären wir bei 5.5 und dann würde er auf 6 aufrunden, dann wäre die seite 6 ohne inhalt
     

  14. #14
    Registriert seit
    Jul 2001
    Ort
    Schweiz
    Beiträge
    837
    Ich hab im Manuale schon gegugt, aber da wird nur die round(9 funktion angeboten, nur bringt mir das nichts, denn es muss zum Beispiel bei 4.2 auf 5 AUF gerundet werden und nich auf 4.0 ab gerundet werden.
    Ich hab nun mal selbst geschaut, es gibt auch Funktionen zum auf- oder abrunden.

    ceil(nr); rundet auf.
    floor(nr); rundet ab.

    Damit müsste dein Problem gelöst sein. Wenn nicht, einfach melden.
     
    Das maximale Volumen subterraner Agrarprodukte steht in reziproker Relation zur spirituellen Kapazität des Produzenten.
    (Die dümmsten Bauern haben die grössten Kartoffeln.)

    Mein Technologie Blog: http://www.freeworld.net/blog/

  15. #15
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    stimmt, geht.

    DANNKE für eure Hilfe.

    Kurze frage noch, nach was hast du im Manual gesucht?
     

Ähnliche Themen

  1. tableviewer und zeilenumbruch geht leider nicht********?:-(
    Von daniel38 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 19.01.11, 13:10
  2. Hex geht leider net :(
    Von Sg im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 29.12.08, 20:57
  3. Antworten: 3
    Letzter Beitrag: 20.05.08, 17:16
  4. leider nicht das richtige
    Von flash8 im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 01.12.06, 07:05