Einzelnen Beitrag anzeigen
  #1  
Alt 17.04.2007, 15:14:30
DanielSNRW DanielSNRW ist offline
Anfänger
 
Registriert seit: Dec 2006
Beiträge: 18
Blätterfunktion und Limit

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."&nbsp;";
            }
            
            else 
            
            {
                echo 
"<a href=\"show_artikel.php?page=".$i."\">$i</a>&nbsp;";
            }
        }
    
        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

Geändert von DanielSNRW (17.04.2007 um 15:22:42 Uhr)
Mit Zitat antworten