• Willkommen, Gast!
  • Mittwoch, 16. Oktober 2019, 20:03:26
Position: Home » Allgemeines » Allgemeines Board » Seitenzahlen in PHP (MySQL) auflistung einbringen
Antworten
Thema: Seitenzahlen in PHP (MySQL) auflistung einbringen [Seite 1 ]

Kein neuer Beitrag RommY , 08.07.2015, 21:39
Beitrag #1   

IP: n/a
Rang: * * * * * * *
Registrierung: 03.03.2007, 18:18
Homepage: http://www.atool-media.de
Wohnort: Derben bei Magdeburg (Deuts...
 

Forum-Gott mit 603 Punkte, 449 Beiträge
Hallo ihr lieben.

Ich habe eine php Tabelle die ihre daten Dynamisch aus einer My SQL Datenbank bekommt.
Ich habe nun den Wunsch dort Seitenzahlen einzubinden.
Am besten Soll das wie folgt aussehen:
[<<][<][1][2][3][4][5][6][7][8][9][10]...[>][>>]
[<<][<][1][2][3][4][5][6][7][8][9][10]...[>][>>]
[<<][<][1][2][3][4][5][6][7][8][9][10]...[>][>>]
[<<][<][1][2][3][4][5][6][7][8][9][10]...[>][>>]
[<<][<][1][2][3][4][5][6][7][8][9][10]...[>][>>]
[<<][<]...[2][3][4][5][6][7][8][9][10][11]...[>][>>]
[<<][<]...[3][4][5][6][7][8][9][10][11][12]...[>][>>]
(Bitte auf die Zahlenreihenfolge und die Fettmarkierung schauen)

hier ist das Stück meiner Tabellenauflistung:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    $sqlString = "SELECT * FROM user WHERE ID <> 1 ";
    $result = safe_query($sqlString);
    $countAllUsers = mysql_num_rows($result);
    $schniedeltext .= "Anzahl Benutzer: ".$countAllUsers."<br>";
    
    $schniedelliste .= '<div z-index:2 width="100%"><table id="tabelle" width="970"><tr width="100%"><td><b>ID</b></td><td><b>USERNAME</b></td><td><b>SCHNIEDELNAME</b></td><td><b>EMAILADRESSE</b></td><td><b>CM</b></td><td><b>DATUM</b></td><td><b>IP</b></td><td><b>OPTION</b></td></tr>';
    while ($row = mysql_fetch_assoc($result))
    {
      $detaillink = '&nbsp;&nbsp;<a href="user.php?id='.$row['ID'].'"><img alt="EDIT" height="15" src="images/postediticon.png" width="15"></a>';
    
      $schniedelliste .= '';
      $schniedelliste .= '<tr width="100%">';
      $schniedelliste .= '<td class="row_ $i % 2;">'.$row['ID'].'</td><td>'.$row['name'].'</td><td>'.$row['schniedelname'].'</td><td>'.$row['email'].'</td>
          <td>'
.$row['totalhits'].'</td><td>'.date("d.m.Y"$row['created']).'</td><td>'.$row['IP'].'</td><td>'.$detaillink.'</td>';
      $schniedelliste .= '</tr>';
    }
    $schniedelliste .= '</table></div>';
    
    $schniedeltext .= "<br>Besnutzer&uuml;bersicht:<br>".$schniedelliste;


Hier habe ich aus einem Tutorial eine Lösung für Seitenzahlen:
So werden die Links einmal aussehen:
PHP:
1
www.example.com/site.php?page=5

PHP:
1
2
$count = 10;
$offset = ($_GET['page'] - 1) * $count;

PHP:
1
SELECT * FROM tabelle LIMIT $offset$count

PHP:
1
2
3
4
$count_pages = ceil($count_entries / $count);
for (int $i = 1$i <= $count_pages$i++) {
   echo '[<a href="site.php?page=' . $i . '">' . $i . '</a>';
}

PHP:
1
2
3
4
5
if ($_GET['page'] > 1) {
   echo '<a href="site.php?page=' . ($_GET[page] - 1) . '">vorherige Seite</a>';
else {
   echo 'vorherige Seite';
}


Da meine Tabelle am ende über $schniedelliste; ausgegeben werden und mein php script anders ist als
die die ich sonst nutzte hab ich absolut kein Plan wie hier die codes für die Seitenzahl
generierung eingebunden werden können.
Meine Seiten Zahlen wie oben an zu passen würd ich hinterher erstmal selbst probieren wollen.

Ich erhoffe mir hier das mir einer entweder so gut und einfach beschreiben kann, das ich das selbst
umgesetzt bekomme, oder jemand so nett ist und es mir fertig macht :)
dann seh ich ja auch wie es ging :)

mfg, rommy.

 
Kein neuer Beitrag Mars , 10.07.2015, 11:56
Beitrag #2   

IP: n/a
Rang: * * * * * * *
Registrierung: 04.09.2007, 15:49
Homepage: http://www.mliebgott.de
Wohnort: Dresden
 

Forum-Gott mit 1025 Punkte, 697 Beiträge
Hallo,
leider versteh ich nicht ganz Dein Problem. Was möchtest Du genau machen bzw. wo stockt es?

mfg Marcel

 
Kein neuer Beitrag RommY , 12.07.2015, 05:50
Beitrag #3   

IP: n/a
Rang: * * * * * * *
Registrierung: 03.03.2007, 18:18
Homepage: http://www.atool-media.de
Wohnort: Derben bei Magdeburg (Deuts...
 

Forum-Gott mit 603 Punkte, 449 Beiträge
Hey, danke ür deine Antwort:)
Also ich habe nach langem probieren geschafft, das meine PHP Tabelle die sich Ihre Daten aus der My
SQL datenbank holt so zu laden, das seitenzahlen erstellt werden.

Sprich wenn mehr als 50 Einträge auf einer Seite sind, wird eine neue ID seite hinzugefügt.

Jetzt stockt es an der stelle das die Seitenzahlenauflistung ja unbegrenzt ist heißt:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ....

Irgendwann wird selbst das ja zu viel.
nun suche ich nach einer Lösung das die Seitenzahlen gekürzt werden:
Am besten Soll das wie folgt aussehen:
[<<][<][1][2][3][4][5][6][7][8][9][10]...[>][>>]
[<<][<][1][2][3][4][5][6][7][8][9][10]...[>][>>]
[<<][<][1][2][3][4][5][6][7][8][9][10]...[>][>>]
[<<][<][1][2][3][4][5][6][7][8][9][10]...[>][>>]
[<<][<][1][2][3][4][5][6][7][8][9][10]...[>][>>]
[<<][<]...[2][3][4][5][6][7][8][9][10][11]...[>][>>]
[<<][<]...[3][4][5][6][7][8][9][10][11][12]...[>][>>]

Oder so Ähnlich.

Hier bin ich aber völlig Planlos wie ich das anstellen soll.
Ich währ sehr Dankbar, wenn ich dazu Hilfe bekommen würde.
MfG, Rommy.


 
Kein neuer Beitrag Mars , 12.07.2015, 11:18
Beitrag #4   

IP: n/a
Rang: * * * * * * *
Registrierung: 04.09.2007, 15:49
Homepage: http://www.mliebgott.de
Wohnort: Dresden
 

Forum-Gott mit 1025 Punkte, 697 Beiträge
Hallo,
als Hilfestellung kann ich dir folgende Schritte ausweisen:

  • default-Wert für die maximale Anzahl der anzuzeigenden Seiten (am besten eine ungerade Zahl, um
    die Optik zu gewährleisten) - Bsp: 11
  • von der aktuellen Seite (z.B. 7) herausfinden, von welcher Seite bis welcher Seite die
    Seitennavigation angezeigt werden muss (Bsp.: 2 bis 12)
  • lässt eine Schleife laufen (for($i = <min>; $i <= <max>; $i++)) wobei min = 2 und max = 12
  • mit der Variable $i rufst du deine Seiten auf


mfg Marcel
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte Mal 12.07.2015, 11:19 von Mars.

 
Kein neuer Beitrag RommY , 12.07.2015, 14:22
Beitrag #5   

IP: n/a
Rang: * * * * * * *
Registrierung: 03.03.2007, 18:18
Homepage: http://www.atool-media.de
Wohnort: Derben bei Magdeburg (Deuts...
 

Forum-Gott mit 603 Punkte, 449 Beiträge
also mein script sieht wie folgt aus:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
$seite = $_GET["seite"];  //Abfrage auf welcher Seite man ist

        //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
        if(!isset($seite))
           {
           $seite = 1;
           }
        //Einträge pro Seite: Hier 15 pro Seite
        $eintraege_pro_seite = 10;
        //Ausrechen welche Spalte man zuerst ausgeben muss:
        $start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
        //Tabelle Abfragen
        //Tabelle hei&szlig;t hier einfach: Tabelle
        $abfrage = "SELECT * FROM user ID $start, $eintraege_pro_seite";
        $ergebnis = mysql_query($abfrage);
        while($row = mysql_fetch_object($ergebnis))
        {
           echo $row->id."<br>"// Hier die Ausgabe der Einträge
        }
        $result = mysql_query("SELECT ID FROM user");
        $menge = mysql_num_rows($result);


        //Errechnen wieviele Seiten es geben wird
        $wieviel_seiten = $menge / $eintraege_pro_seite;        
        
        $sqlString = "SELECT * FROM user WHERE ID <> 1 ORDER BY ID DESC LIMIT $start, $eintraege_pro_seite";



// Hier ist meine Tabellenausgabe platziert...

       //Ausgabe der Seitenlinks:
        $schniedeltext .= "<br/><div align="center">";
        $schniedeltext .= "<b>Seite:</b> <a href="?id=1&seite=1"> [<<] </a>";

        
        
        //Ausgabe der Links zu den Seiten
        for($a=0$a < $wieviel_seiten$a++)
           {
           $b = $a + 1;

       //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
       if($seite == $b)
          {
          $schniedeltext .= "  <b> > $b < </b> ";
          }
    
       //Aus dieser Seite ist der User nicht, also einen Link ausgeben
       else
          {
          $schniedeltext .= " <a href="?id=1&seite=$b">[$b]</a> ";
          }


           }
      $schniedeltext .= "<a href="?id=1&seite=$wieviel_seiten"> [>>] </a></div>";

        } 


und wo genau muss ich da jetzt was machen?
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte Mal 12.07.2015, 14:23 von RommY.

 
Kein neuer Beitrag Mars , 13.07.2015, 07:30
Beitrag #6   

IP: n/a
Rang: * * * * * * *
Registrierung: 04.09.2007, 15:49
Homepage: http://www.mliebgott.de
Wohnort: Dresden
 

Forum-Gott mit 1025 Punkte, 697 Beiträge
Hallo,
die for-Schleife müsstest du noch anpassen :)

mfg Marcel

 
Kein neuer Beitrag RommY , 13.07.2015, 12:43
Beitrag #7   

IP: n/a
Rang: * * * * * * *
Registrierung: 03.03.2007, 18:18
Homepage: http://www.atool-media.de
Wohnort: Derben bei Magdeburg (Deuts...
 

Forum-Gott mit 603 Punkte, 449 Beiträge
und genau da weis ich nicht wie es geht.

folgendes script hätte ich für die realisierung des seitenzahlenbandes.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 <?php
function blaetterfunktion($seite,$maxseite,$url="",$anzahl=4,$get_name="seite")
   {
   if(ereg("\?",$url)) $anhang = "&";
   else $anhang = "?";

   if(substr($url,-1,1) == "&") {
      $url = substr_replace($url,"",-1,1);
      }
   else if(substr($url,-1,1) == "?") {
      $anhang = "?";
      $url = substr_replace($url,"",-1,1);
      }

   if($anzahl%2 != 0$anzahl++; //Wenn $anzahl ungeraden, dann $anzahl++

   $a = $seite-($anzahl/2);
   $b = 0;
   $blaetter = array();
   while($b <= $anzahl)
      {
      if($a > 0 AND $a <= $maxseite)
         {
         $blaetter[] = $a;
         $b++;
         }
      else if($a > $maxseite AND ($a-$anzahl-2)>=0)
         {
         $blaetter = array();
         $a -= ($anzahl+2);
         $b = 0;
         }
      else if($a > $maxseite AND ($a-$anzahl-2)<0)
         {
         break;
         }

      $a++;
      }
   $return = "";
   if(!in_array(1,$blaetter) AND count($blaetter) > 1)
      {
      if(!in_array(2,$blaetter)) $return .= "&nbsp;<a href=\"{$url}{$anhang}{$get_name}=1\">1</a>&nbsp;...";
      else $return .= "&nbsp;<a href=\"{$url}{$anhang}{$get_name}=1\">1</a>&nbsp;";
      }

   foreach($blaetter AS $blatt)
      {
      if($blatt == $seite$return .= "&nbsp;<b>$blatt</b>&nbsp;";
      else $return .= "&nbsp;<a href=\"{$url}{$anhang}{$get_name}=$blatt\">$blatt</a>&nbsp;";
      }

   if(!in_array($maxseite,$blaetter) AND count($blaetter) > 1)
      {
      if(!in_array(($maxseite-1),$blaetter)) $return .= "...&nbsp;<a href=\"{$url}{$anhang}{$get_name}=$maxseite\">letzte</a>&nbsp;";
      else $return .= "&nbsp;<a href=\"{$url}{$anhang}{$get_name}=$maxseite\">$maxseite</a>&nbsp;";
      }

   if(empty($return))
      return  "&nbsp;<b>1</b>&nbsp;";
   else
      return $return;
   }   
?>

Abonnieren Druckansicht
Antworten

n/a n/a 1     (Anzeige: 1 – 7; insgesamt: 7) n/a n/a
User in diesem Thema: 0 Registrierte, 0 Versteckte, 1 Gast, 0 Bots
Keine
Legende: Administratoren, User, Moderatoren
Themenaktionen:
Beiträge verschieben

Toggle Ähnliche Themen zu „Seitenzahlen in PHP (MySQL) auflistung einbringen“
  Antworten Aufrufe Themeneröffnung Letzter Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
Thema PS Pro unter PHP 7? 0 155073 17.03.2017, 02:03
Von: Tobi
17.03.2017, 02:03
Von: Tobi Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  PHP Script gesucht 8 44400 16.06.2015, 22:16
Von: RommY
20.06.2015, 01:45
Von: RommY Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  MySQL Version / Boardpfad Fehler bei Installa ... 3 19769 19.04.2013, 09:55
Von: ckragt
20.04.2013, 23:51
Von: Nils Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, verschoben
  [PHP][REGEX] für Template 1 23995 28.02.2013, 14:28
Von: Mars
01.03.2013, 07:00
Von: Nils Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  [PHP] beste Möglichkeit User-IP auszulesen 2 35930 20.02.2013, 06:06
Von: Mars
20.02.2013, 08:03
Von: Mars Zum letzten Beitrag
  • 0.14158 Sek., 11 DB-Zugriffe, 1.649 MiB
  • Powered by Boardsolution v1.46