Seitenanzahl

thehasso

Erfahrenes Mitglied
Hallo,


Ich würde gerne für meine Website ein Mitgliederverzeichnis erstellen. Dabei stellt sich die Frage, wie ich das genau umsetzen soll. Und zwar will ich bei 1000 Usern nicht immer mit der Limit Funktion arbeiten.

Also ich hab mir das so vorgestellt. Das wenn man auf weiter drückt in der Url immer um eins inkrementiert wird und neue User angezeigt werden.

Also alle in eine Seite aus zu geben ist total nicht schön, gibts dazu vielleicht ein fertiges Skript bzw. wie könnte man da vorgehen?


Freu mich über jede hilfreiche Antwort.


LG thehasso
 
Und zwar will ich bei 1000 Usern nicht immer mit der Limit Funktion arbeiten.

Ok. Aus welchem Grund?

Es gibt die Möglichkeit [phpf]mysql_result[/phpf] zu nutzen, da man dort bestimmte Ergebniszeilen auslesen kann von einer SQL-Anweisung. Allerdings würde dies bedeuten, dass die gesamte Tabelle im Puffer steht. über die mit jedem Aufruf ebenfalls iteriert wird und nicht nur eine begrenzte Anzahl via LIMIT, die ganz schlicht linear durchlaufen wird.
 
hi,

hab mir den Code genommen, der unter folgenden Link zu finden war:
dickes Danke an Maik.

Ich sag mal funktionieren tuts das die User alle ausgelesen und ausgegeben werden. Die Seitenanzahl, wird ebenso ausgeben.

Nicht Funktionieren ist das auf jeder Seite alle Datensästze ausgegeben werden.
Sprich wenn man auf Seite 2 Klickt wird das selbe ausgegben wie auf Seite 1 und 3...

Stimmt was an meiner überarbeitung nicht?

von da ist das Skript:
http://www.php4yourself.de/project-einfache-blätterfunktion-19.html

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<?php 
$entries_per_page = 5; 

if (!isset($_GET["5"])) { 
  $limit  = $entries_per_page; 
} else { 
  $limit  = ($_GET["5"] * $entries_per_page - $entries_per_page); 
  $limit .= ', ' . $entries_per_page; 
} 
?> 

<?php 
	  	require_once('dataBaseConnection.php');
		
$sql = "SELECT 
              * 
        FROM 
              tblbenutzer 
        LIMIT " . $limit 
; 

$result = mysql_query($sql) OR die (mysql_error()); 
while ($row = mysql_fetch_array($result)) { 
  //Ausgabe 
  
  
  		$record['Vorname'] = $row['Vorname'];
		$record['Nachname'] = $row['Nachname'];
		$record['dateiname'] = $row['dateiname'];


       $DATAA['SEARCH'][] = $record;
	    
  
  
} 
?> 


  <?php  foreach($DATAA['SEARCH'] as $searchEntry): ?> 
<?
$vorname = htmlentities($searchEntry['Vorname']);
$nachname = htmlentities($searchEntry['Nachname']);
$dateiname = htmlentities($searchEntry['dateiname']);
?>

<table width="820" border="1">
  <tr>
    <td width="186">&nbsp;</td>
    <td width="346">&nbsp;</td>
    <td width="266">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><? echo $vorname; ?></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><? echo $nachname; ?></td>
    <td>&nbsp;</td>
  </tr>
</table>

<br />



<?php endforeach; ?>




<?php 
	
		require_once('dataBaseConnection.php');

$sql = "SELECT 
              COUNT(*) as gesamt 
        FROM 
              tblbenutzer 
"; 
$result = mysql_query($sql) OR die (mysql_error()); 
$row    = mysql_fetch_array($result); 
$num    = $row["gesamt"]; 
?> 

<?php 
if ($num > 0) { 
  echo 'Seite: '; 
  for ($i = $num, $j = 1; $i > 0; $i -= $entries_per_page, $j++) { 
    if ((!isset($_GET["5"]) && $j == 1)            || 
        (isset($_GET["5"]) && $_GET["5"] == $j)      ) 
    { 
      // Aktuell aktive Seite 
      echo '<a href="mitgliedervz.php?p=' . $j . '"> 
           <span style="text-decoration: underline;">' . $j . '</span></a> '; 
    } else { 
      echo '<a style="text-decoration: none;" href="mitgliedervz.php?p=' . $j . '">'; 
      echo $j; 
      echo '</a> '; 
    } 
  } 
  echo '<br /><br />'; 
}   
?> 
</body>
</html>


Gutenacht

thehasso
 
Überprüfe mal, was in deinem oberen Query steht, wenn er fertig zusammengesetzt wurde. Ich meine den Teil hier:
PHP:
$sql = "SELECT 
              * 
        FROM 
              tblbenutzer 
        LIMIT " . $limit;
 
Hallo,

Das Schema funktioniert jetzt =) könnte man es noch so umstrukturieren, das die User Alphabetisch ausgebeben werden wobei man nur vom Vorname ausgehen soll. Also irgendwie order by name aber dass es Alphabetisch ist.

Beispielsweise so:

Anton
Chris
Dennis
Felix....



PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<?php 
$entries_per_page = 5; 

if (!isset($_GET["p"])) { 
  $limit  = $entries_per_page; 
} else { 
  $limit  = ($_GET["p"] * $entries_per_page - $entries_per_page); 
  $limit .= ', ' . $entries_per_page; 
} 
?> 

<?php 
          require_once('dataBaseConnection.php');
        
$sql = "SELECT 
              * 
        FROM 
              tblbenutzer 
        LIMIT " . $limit 
; 

$result = mysql_query($sql) OR die (mysql_error()); 
while ($row = mysql_fetch_array($result)) { 
  //Ausgabe 
  
  
          $record['Vorname'] = $row['Vorname'];
        $record['Nachname'] = $row['Nachname'];
        $record['dateiname'] = $row['dateiname'];


       $DATAA['SEARCH'][] = $record;
        
  
  
} 
?> 


  <?php  foreach($DATAA['SEARCH'] as $searchEntry): ?> 
<?
$vorname = htmlentities($searchEntry['Vorname']);
$nachname = htmlentities($searchEntry['Nachname']);
$dateiname = htmlentities($searchEntry['dateiname']);
?>

<table width="820" border="1">
  <tr>
    <td width="186">&nbsp;</td>
    <td width="346">&nbsp;</td>
    <td width="266">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><? echo $vorname; ?></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><? echo $nachname; ?></td>
    <td>&nbsp;</td>
  </tr>
</table>

<br />



<?php endforeach; ?>




<?php 
    
        require_once('dataBaseConnection.php');

$sql = "SELECT 
              COUNT(*) as gesamt 
        FROM 
              tblbenutzer 
"; 
$result = mysql_query($sql) OR die (mysql_error()); 
$row    = mysql_fetch_array($result); 
$num    = $row["gesamt"]; 
?> 

<?php 
if ($num > 0) { 
  echo 'Seite: '; 
  for ($i = $num, $j = 1; $i > 0; $i -= $entries_per_page, $j++) { 
    if ((!isset($_GET["p"]) && $j == 1)            || 
        (isset($_GET["p"]) && $_GET["p"] == $j)      ) 
    { 
      // Aktuell aktive Seite 
      echo '<a href="mitgliedervz.php?p=' . $j . '"> 
           <span style="text-decoration: underline;">' . $j . '</span></a> '; 
    } else { 
      echo '<a style="text-decoration: none;" href="mitgliedervz.php?p=' . $j . '">'; 
      echo $j; 
      echo '</a> '; 
    } 
  } 
  echo '<br /><br />'; 
}   
?> 
</body>
</html>



LG
 
Zuletzt bearbeitet:
Zurück