Problem mit Seitensteuerung/blättern

ventuklotz

Grünschnabel
Hi, habe die Seitensteuerung aus Eurem Tutorial mal nachgebastelt :)

funktioniert auch wunderbar, das Problem ist nur, dass er lediglich 2 Seiten (von eigentlich 14) anzeigt, die ich auswählen kann. Da ich alle Datensätze (jeweils 10 pro Seite) ausgeben will, müsste er mir die 14 Seiten anzeigen! Könnt ihr ma kurz schaun was ich übersehen hab? danke :rolleyes:

PHP:
#------------Datenbankverbindung-----------

include ("config.php");
$sql = "SELECT * FROM .....";

#------------Seitensteuerung_1/2---(10 Einträge/Seite)-----------------

#Eingabe der gewünschten Anzahl pro Seite
$anzeige=10;
#Prüfen der jeweiligen Seite/anzuzeigende Werte von x bis ....
$start=$_GET['page'] * $anzeige;

$sql = "SELECT * FROM ... order by ... LIMIT $start,$anzeige";
$result = mysql_query($sql,$db);
$number = mysql_num_rows($result);
$select_titel = mysql_query($sql, $db);

#------------Seitensteuerung_2/2-----------------

#Berechnung der Seiten-------------------------------

$seiten=ceil($number/$anzeige);
#Prüfen der jeweiligen Seite/anzuzeigende Werte von x bis y
$ende = $start + $anzeige;

if ($ende>$number) { $ende = $number; }

#Erstellen von Links-----------------------------------

if ($_GET['page']>0) {
    $i=$_GET['page']-1;
    echo "<a href=\"db_query.php?page=".$i."\"></a>";
}
for($i=0; $i<=$seiten; $i++) {
    if ($i==$_GET['page']) {
        echo $i."&nbsp;";
    }
    else {
        echo "<a href=\"db_query.php?page=".$i."\">$i</a>&nbsp;";
    }
}
if ($_GET['page']<$seiten) {
    $i=$_GET['page']+1;
    echo "<a href=\"db_query.php?page=".$i."\"></A>";
}
 
Zuletzt bearbeitet:
ich glaube, das problem liegt in den folgenden zeilen.
PHP:
$sql = "SELECT * FROM ... order by ... LIMIT $start,$anzeige"; 
$result = mysql_query($sql,$db); 
$number = mysql_num_rows($result); 
$select_titel = mysql_query($sql, $db);
.......
$seiten=ceil($number/$anzeige);
$number hat ja den maximalen wert $anzeige, da es von demselben query kommt, wie die auswahl der aktuellen seite.
ich denke es sollte eher in der folgenden art sein:
PHP:
$sql = "SELECT * FROM ... order by ... LIMIT $start,$anzeige"; 
$sqlNum = "SELECT * FROM ... order by ...";  //kein limit
$result = mysql_query($sqlNum,$db); 
$number = mysql_num_rows($result); 
$select_titel = mysql_query($sql, $db);
.......
$seiten=ceil($number/$anzeige);
somit steht in number die anzahl aller einträge in der tabelle.

//greets
//bad taste
 
Danke für die schnelle Antwort :)

Aber ich hab den Fehler ... schau mal was bei Limit steht..an der 2ten Stelle die Variable, die für die Anzahl der angezeigten Datenbankeinträge zuständig ist...ROFL...da muss natürlich $ende hin! ... dann geht das auch ..

ALlerdings zeigt er mir weiterhin nur 2 Links an für die ersten beiden Seiten...erst, wenn ich den 2ten Link anklicke, um auf die 2te Seite zu gelangen, zeigt er den Link für die dritte Seite an etc. ...:) wär schön, wenn da noch einer Abhilfe wüßte :)

Gruß Andreas
 
Zuletzt bearbeitet:
hmm komisch.
lass dir doch einfach mal den jeweiligen query ausgeben.
evtl auch mal $page.
poste einfach mal die queries mit den seiten 1, 2, 3
vermutlich ist dann beim limit etwas falsch.
//greets
//bad taste
 
wenn ich mit $page ausgeben lasse, zeigt er mir an

0 1 | <a href="/movieDB/test2.php?page=1>» | (obwohl es 0 sein müsste oder ? )

bei dem query :

Seite 1
---------

0 1 | <a href="/movieDB/test2.php?page=1>» | SELECT * FROM dvd order by titel LIMIT 0,10

seite 2
------------

« 0 | 1 2 | <a href="/movieDB/test2.php?page=2>» | SELECT * FROM dvd order by titel LIMIT 10,20

Seite 3 (und so weiter) :

« 0 | 1 | 2 3 | <a href="/movieDB/test2.php?page=3>» | SELECT * FROM dvd order by titel LIMIT 20,30
 
schau dir doch mal den zweiten php-code an, den ich vorhin gepostet habe.
daran wird es vermutlich liegen....
//bad taste
 
Zurück