PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Blätterfunktion und Limit (http://www.selfphp.de/forum/showthread.php?t=16598)

DanielSNRW 17.04.2007 15:14:30

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

raven22k 17.04.2007 15:28:45

AW: Blätterfunktion und Limit
 
das liegt ganz einfach daran, dass du $_POST['anzahl'] nicht weiter übergibst.
Sagen wir mal der User gibt 50 an.Nun werden die ersten 50 angezeigt. Nun geht er auf Seite 2. Woher soll das script wissen, dass er 50 ausgewählt hat, da du den wert nicht weiter übergibst wenn ich das richtig sehe :), dann wird wieder die standarteinstellung, da $_POST['anzahl'] = 0 ist

so ich hoffe das ist richtig gewesen

btw:

Zitat:

Zitat von DanielSNRW (Beitrag 100338)
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;
    } 


das kann man ganz argh kürzen :D

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'] == 0)
    {
        
$proseite 20;         
    } else {
        
$proseite $_POST['anzahl'];
    } 

mal ne frage von mir wie kann man in diesem beitragseditor den tabulator benutzen ?

DanielSNRW 17.04.2007 15:57:04

AW: Blätterfunktion und Limit
 
Danke schonmal, die kürzere Version hatte ich auch getestet, hatte aber beim ersten Mal nicht gefunzt...

Wo muss ich denn $_POST['anzahl'] weiter übergeben?

DanielSNRW 18.04.2007 15:46:15

AW: Blätterfunktion und Limit
 
Kann mir keiner noch nen Tipp geben?

raven22k 18.04.2007 19:02:53

AW: Blätterfunktion und Limit
 
achso ja du musst das im in den page links übergeben


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:59:50 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.