Hallo,
ich bastele zur Zeit an einer Inventurdatenbank. Dort sind über 200 Einträge drin, deshalb habe ich erst einmal eine Blätterfunktion eingebaut. Hat auch so funktioniert, außer, dass eine letzte Seite angezeigt wird, die leer ist.
Nun möchte ich, dass der User selbst entscheiden kann, wieviele Artikel er zu sehen bekommt. Das funktioniert bis hierhin auch ganz gut. Nur wenn man sich zum Beispiel 50 Artikel anzeigen lassen will, dann spuckt er diese auch aus. Möchte man jedoch mit der Blätterfunktion auf die nächste Seite springen, so gibt er die Seite aus, die eigentlich kommen würde, wenn der Standardwert der Artikelanzahl eingetragen wäre.
Auswahl-Code:
PHP-Code:
echo '<form action="" method="POST" id="foomular" name="foomular">';
echo '<select name="anzahl" onchange="document.foomular.submit();">';
echo '<option value="10">10</option>';
echo '<option value="20">20</option>';
echo '<option value="30">30</option>';
echo '<option value="50">50</option>';
echo '<option value="100">100</option>';
echo '<option value="1000">alle</option>';
echo '</select>';
echo '</form>';
//Nötig für Auswahl der Anzahl der Artikel, die vom User ausgewählt werden
if($_POST['anzahl']==10)
{
$proseite = 10;
}
elseif($_POST['anzahl']==30)
{
$proseite = 20;
}
elseif($_POST['anzahl']==30)
{
$proseite = 30;
}
elseif($_POST['anzahl']==50)
{
$proseite = 50;
}
elseif($_POST['anzahl']==100)
{
$proseite = 100;
}
elseif($_POST['anzahl']==0)
{
$proseite = 20;
}
elseif($_POST['anzahl']=='1000')
{
$proseite = 1000;
}
Blättern:
PHP-Code:
$start=$_GET['page'] * $proseite;
$no_data_sql = "SELECT * FROM artikel";
$result = mysql_query($no_data_sql);
//Anzahl der Datensätze ermitteln
$number = mysql_num_rows($result);
$seiten = ceil($number/$proseite);
$abfrage = "SELECT *
FROM artikel
ORDER BY inventarnummer ASC
LIMIT $start, $proseite";
$result = mysql_query($abfrage) or die(mysql_error());
$page = $_GET['page'];
$ende = $start + $proseite;
if ($ende > $number) { $ende = $number; }
Erstellung der Links
PHP-Code:
if ($_GET['page']>0)
{
$i=$_GET['page']-1;
echo "<a href=\"show_artikel.php?page=".$i."\"><< zurück</a>";
}
for($i=0; $i<=$seiten; $i++)
{
if ($i==$_GET['page'])
{
echo $i." ";
}
else
{
echo "<a href=\"show_artikel.php?page=".$i."\">$i</a> ";
}
}
if ($_GET['page']<$seiten)
{
$i=$_GET['page']+1;
echo "<a href=\"show_artikel.php?page=".$i."\">weiter >></A>";
}
Wo liegt mein Denkfehler?
Danke im Vorraus,
Daniel