Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Mysql PHP Automatische Seitenanzahl

  1. #1
    Teeny
    Registriert seit
    15.10.2005
    Beiträge
    28
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard 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
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    was hast du denn jetzt schon???

    also wo soll diese funktion integriert werden??
    bzw Datenbank oder oder oder ???

  3. #3
    Teeny
    Themenstarter

    Registriert seit
    15.10.2005
    Beiträge
    28
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ich habe das Auslesen der Daten:

    Code:
    <?php  include&#40;"inc/header.inc.php"&#41;;
    include&#40;"inc/mysql.inc.php"&#41;;
    include &#40;"inc/auflistdetails.inc.php"&#41;;
    
    $abfrage = "SELECT * FROM adressdaten";
    $ergebnis = mysql_query&#40;$abfrage&#41;;
    ?>
    <table width="100%"  border="0">
      <tr>
        <td>Nachnahme</td>
        <td>Veranstalltung</td>
        <td>Mitarbeiter</td>
      </tr>
      <?
    while&#40;$row = mysql_fetch_assoc&#40;$ergebnis&#41;&#41;
       &#123;
       echo "<tr>";
       echo  "<td><a href=details.php?id=$row&#91;id&#93;&nachname=$row&#91;nachname&#93;>$row&#91;nachname&#93;</td>";
       echo  "<td>$row&#91;veranstalltung&#93;</td>";
       echo  "<td>$row&#91;mitarbeitername&#93;</td>";
       echo "</tr>";
       &#125;
       
    ?>
    Und da soll die Seitenzahl rein.

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

    Code:
    include &#40;"inc/mysql.inc.php"&#41;;
    
                                   //Anzahl der Ergebnisse pro Seite
                                   $count = 15;
    
                                   $lines = mysql_result&#40;mysql_query&#40;"SELECT count&#40;*&#41; FROM `$adressdaten` "&#41;,0&#41;;
                                   //Seitenanzahl berechnen
                                   $pagecount=ceil&#40;$lines/$count&#41;;
    
                                   //Ungültige Seitenanzahlen korrigieren
                                   if &#40;$page<1&#41; $page=1;
                                   if &#40;$page>$pagecount&#41; $page=$pagecount;
    
                                   //Ergebnisse lesen
                                   $begin=&#40;$page-1&#41;*$count;
    
                                   $result = mysql_query&#40;"
                                             SELECT * FROM $adressdaten ORDER BY $orderBy ASC LIMIT $begin,$count"&#41;;
    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

  4. #4
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

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

    Code:
    list&#40;$eintraege&#41;=mysql_fetch_row&#40;mysql_query&#40;"SELECT COUNT&#40;`id`&#41; FROM `XY`"&#41;&#41;;
    
    $seite=&#40;is_numeric&#40;$_REQUEST&#91;'seite'&#93;&#41;&#41;1&#58;$_REQUEST&#91;'seite'&#93;;
    $eintraege_pro_seite=15;
    $seiten=ceil&#40;$eintraege/$eintraege_pro_seite&#41;;
    
    $start=$eintraege_pro_seite*&#40;$seite-1&#41;;
    $ende =$eintraege_pro_seite*$seite;
    
    for&#40;$i=0; $i<=$seiten; $i++&#41;
    &#123;
     if &#40;$i==$seite&#41; 
     &#123;
      echo "$i";	
     &#125; else &#123;
      echo "<a href=\"&#123;$_SERVER&#91;'PHP_SELF'&#93;&#125;?seite=$i\">$i</a>";
     &#125;
    &#125;
    
    $sql="SELECT * FROM XY LIMIT $start, $ende;"
    ?>
    <table width="100%"  border="0">
      <tr>
        <td>Nachnahme</td>
        <td>Veranstalltung</td>
        <td>Mitarbeiter</td>
      </tr>
      <?
    while&#40;$row = mysql_fetch_assoc&#40;$ergebnis&#41;&#41;
       &#123;
       echo "<tr>";
       echo  "<td><a href=details.php?id=$row&#91;id&#93;&nachname=$row&#91;nachname&#93;>$row&#91;nachname&#93;</td>";
       echo  "<td>$row&#91;veranstalltung&#93;</td>";
       echo  "<td>$row&#91;mitarbeitername&#93;</td>";
       echo "</tr>";
       &#125;

  5. #5
    Teeny
    Themenstarter

    Registriert seit
    15.10.2005
    Beiträge
    28
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

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

    list($eintraege)=mysql_fetch_row(mysql_query("SELE CT 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!)

    Code:
                                   $count = 15;
    
                                   $lines = mysql_result&#40;mysql_query&#40;"SELECT count&#40;*&#41; FROM `$adressdaten` "&#41;,0&#41;;
                                   //Seitenanzahl berechnen
                                   $pagecount=ceil&#40;$lines/$count&#41;;
    
                                   //Ungültige Seitenanzahlen korrigieren
                                  if &#40;$page<1&#41; $page=1;
                                  if &#40;$page>$pagecount&#41; $page=$pagecount;
    
                                   //Ergebnisse lesen
                                   $begin=&#40;$page-1&#41;*$count;
    
                                   $result = mysql_query&#40;"
                                             SELECT * FROM $adressdaten ORDER BY $orderBy ASC LIMIT $begin,$count"&#41;;
    	/** seitenzahl oben **/									 
                       echo "Seite&#58;&#91;";
                                   for &#40;$i=1; $i<=$pagecount; $i++&#41;
                                   &#123;
                                     if &#40;$i==$page&#41;
                                     &#123;
                                       echo "".$i." ";
                                     &#125; else &#123;
                                       echo "<a href=\"?show=addressList&orderBy=$orderBy&page=$i\" alt=\"\">".$i."</a> ";
                                     &#125;
                                   &#125;
                       echo "&#93;";
    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

  6. #6
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

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

    Code:
    # Anzhal der entitäten in der DB
    list&#40;$eintraege&#41;=mysql_fetch_row&#40;mysql_query&#40;"SELECT COUNT&#40;`id`&#41; FROM `XY`"&#41;&#41;;
    
    # $_REQUEST ist die Zusammenfassung von $_GET und $_POST,
    # Wenn die seiten Nummer eine Zahl ist verwende sie ansonsten setze 1^ | ich hatte ein  ? vergessen
    $seite=&#40;is_numeric&#40;$_REQUEST&#91;'seite'&#93;&#41;&#41;?1&#58;$_REQUEST&#91;'seite'&#93;;
    
    ## Einträge pro Seite
    $eintraege_pro_seite=15;
    
    ### Berechner der Gesamt seiten Anzahl | ceil --> Aufrunden auf ganze Zahl
    $seiten=ceil&#40;$eintraege/$eintraege_pro_seite&#41;;
    
    ## Berechnen des benötigten ersten Datensatzes
    $start=$eintraege_pro_seite*&#40;$seite-1&#41;;
    
    ### Ausgeben der Seitenzahlen und fett makieren der momentanen Seite
    for&#40;$i=0; $i<=$seiten; $i++&#41;
    &#123;
     if &#40;$i==$seite&#41;
     &#123;
      echo "$i";   
     &#125; else &#123;
      echo "<a href=\"&#123;$_SERVER&#91;'PHP_SELF'&#93;&#125;?seite=$i\">$i</a>";
     &#125;
    &#125;
    
    # holen der Datensätze der aktuellen Seite
    $sql="SELECT * FROM XY LIMIT $start, $eintraege_pro_seite;"
    ?>
    <table width="100%"  border="0">
      <tr>
        <td>Nachnahme</td>
        <td>Veranstalltung</td>
        <td>Mitarbeiter</td>
      </tr>
      <?
    while&#40;$row = mysql_fetch_assoc&#40;$ergebnis&#41;&#41;
       &#123;
       echo "<tr>";
       echo  "<td><a href=details.php?id=$row&#91;id&#93;&nachname=$row&#91;nachname&#93;>$row&#91;nachname&#93;</td>";
       echo  "<td>$row&#91;veranstalltung&#93;</td>";
       echo  "<td>$row&#91;mitarbeitername&#93;</td>";
       echo "</tr>";
       &#125;

  7. #7
    Teeny
    Themenstarter

    Registriert seit
    15.10.2005
    Beiträge
    28
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

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

    Dies sieht mir aber nicht funktionabel aus:
    $sql="SELECT * FROM XY LIMIT $start, $eintraege_pro_seite;"
    Ich habe es zu
    $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

  8. #8
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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

    Code:
    # Anzhal der entitäten in der DB
    list&#40;$eintraege&#41;=mysql_fetch_row&#40;mysql_query&#40;"SELECT COUNT&#40;`id`&#41; FROM `".$adressdaten."`"&#41;&#41;;
    
    # $_REQUEST ist die Zusammenfassung von $_GET und $_POST,
    # Wenn die seiten Nummer eine Zahl ist verwende sie ansonsten setze 1^ | ich hatte ein  ? vergessen
    $seite=&#40;is_numeric&#40;$_REQUEST&#91;'seite'&#93;&#41;&#41;?1&#58;$_REQUEST&#91;'seite'&#93;;
    
    ## Einträge pro Seite
    $eintraege_pro_seite=15;
    
    ### Berechner der Gesamt seiten Anzahl | ceil --> Aufrunden auf ganze Zahl
    $seiten=ceil&#40;$eintraege/$eintraege_pro_seite&#41;;
    
    ## Berechnen des benötigten ersten Datensatzes
    $start=$eintraege_pro_seite*&#40;$seite-1&#41;;
    
    ### Ausgeben der Seitenzahlen und fett makieren der momentanen Seite
    for&#40;$i=0; $i<=$seiten; $i++&#41;
    &#123;
     if &#40;$i==$seite&#41;
     &#123;
      echo "$i";   
     &#125; else &#123;
      echo "<a href=\"&#123;$_SERVER&#91;'PHP_SELF'&#93;&#125;?seite=$i\">$i</a>";
     &#125;
    &#125;
    
    # holen der Datensätze der aktuellen Seite
    $sql="SELECT * FROM `".$adressdaten."` LIMIT $start, $eintraege_pro_seite;"
    
    $ergebniss=mysql_query&#40;$sql&#41;; echo mysql_error&#40;&#41;."
    ".$sql;
    ?>
    <table width="100%"  border="0">
      <tr>
        <td>Nachnahme</td>
        <td>Veranstalltung</td>
        <td>Mitarbeiter</td>
      </tr>
      <?
    while&#40;$row = mysql_fetch_assoc&#40;$ergebniss&#41;&#41;
       &#123;
       echo "<tr>";
       echo  "<td><a href=details.php?id=&#123;$row&#91;'id'&#93;&#125;&nachname=&#123;$row&#91;'nachname'&#93;&#125;>&#123;$row&#91;'nachname'&#93;&#125;</td>";
       echo  "<td>&#123;$row&#91;'veranstalltung'&#93;&#125;</td>";
       echo  "<td>&#123;$row&#91;'mitarbeitername'&#93;&#125;</td>";
       echo "</tr>";
       &#125;
    nicht wieder nur dein code verändern sondern komplett kopieren. Da es sonst wieder nicht gehen dürfte.

  9. #9
    Teeny
    Themenstarter

    Registriert seit
    15.10.2005
    Beiträge
    28
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    $sql="SELECT * FROM `".$adressdaten."` LIMIT $start, $eintraege_pro_seite;"
    $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&#58; mysql_fetch_assoc&#40;&#41;&#58; supplied argument is not a valid MySQL result resource in E&#58;\xampp\htdocs\veranstalltungen\test.php on line 65
    Zeile 65 enthält:

    Code:
    while&#40;$row = mysql_fetch_assoc&#40;$sql&#41;&#41;

  10. #10
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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.

Ähnliche Themen

  1. per PHP neue MySQL-Datenbank und MySQL-Benutzer anlegen
    Von sudeki05 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 15.04.2007, 19:40
  2. Automatische Weiterleitung
    Von chris90night im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 03.10.2006, 12:29
  3. Automatische Bookmarks
    Von Gast im Forum HTML & CSS Forum
    Antworten: 7
    Letzter Beitrag: 24.01.2006, 22:18
  4. Beitragsanzahl und Seitenanzahl
    Von Mitch im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 11.06.2005, 12:01
  5. automatische weiterleitung
    Von knups im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 01.09.2003, 13:49

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •