MySQL auf mehrere Seiten ausgeben

rikro

Mitglied
Hallo!

Wenn ich den Inhalt meiner MySQL-DB ausgeben will, funktioniert es auch, wenn ich anfangsseite nicht zuweise.

Sobald ich aber den Eintrag zuweise, von dem er beginnen soll, meint er, dass die DB leer ist..

Der Code (Geschnitten):

PHP:
<? 
//$_GET["area"] Abfragen
$site = $_GET["site"]; //GET_site holen und $site zuweisen
$prosite = "5"; //So viel pro Seite ausgeben
$tabelle = "list"; //Tabelle der DB
if(!isset($site))
{
    $site=0;
}

//Echo mit Überschrift

$connectdb = mysql_connect ($host, $user, $password) OR die(mysql_error());
mysql_select_db ($dbname) OR die(mysql_error());

$num = mysql_num_rows(mysql_query("SELECT * FROM $tabelle WHERE area LIKE '" . $showarea . "' LIMIT $site,$prosite"));

if($num == 0) 
{
//Nix da
}
else {
//Überschriften der Tabelle
$query = "SELECT * FROM $tabelle WHERE area LIKE '" . $showarea . "' ORDER BY username ASC LIMIT $site,$prosite";
$result = mysql_query($query) OR die(mysql_error());
 while ($row = mysql_fetch_assoc($result))
 {
//Ausgabe der Daten;
 }

if($num>$prosite)
{
    $Seiten=intval($num/$prosite);
    if($num%$prosite)
    {
        $Seiten++;
    }
}
echo("<table width='100%' align='center' cellspacing='0' cellpadding='2' style='border-top:1px solid #009900; background-color: #006600;'><tr>
<td class='content' align='center'>");
for ($i=1; $i<=$Seiten; $i++)
{
    echo" : <a href='index.php?go=list&site=".($i-1)*$prosite."'>$i</a> : ";
}
echo("</td>
</tr></table>");

}

Wie gesagt...
Sobald ich manuell auf die zweite Seite gehen will, zeigt er mir nichts an!

Danke im Vorraus für Lösungvorschlage!
 
hmm

also warum er dir nichts anzeigt, wenn du $site angibst, kann ich dir jetzt auch nicht sagen

Hast du im code, den du ausgelassen hast noch irgendeine andere Zuweisung?


Aber ein anderes Problemchen ist mir beim durchschauen aufgefallen.

"SELECT * FROM $tabelle WHERE area LIKE '" . $showarea . "' LIMIT $site,$prosite"

Wenn du den LIMIT auf $site,$proseite stellst, dann zeigt er dir die Einträge der Tabelle von NR = $site an mit der Schrittweite $proseite.

Das bedeutet, wenn
$site = 0: Einträge: 0, 1, 2, 3, 4
$site = 1; Einträge: 1, 2, 3, 4, 5
$site = 2; Einträge: 2, 3, 4, 5, 6 usw....


Du wirst also deine Einträge öfters finden, als du das eigentlich wolltest ;)

Änder das mal - vielleicht liegt da auch dein anderes Problem dran

cu shutdown
 
Ich benenn am besten die Variable $site in $startid um...

Bei error_reporting(E_ALL); zeigt er da, wo dann am ende die Seitenzahlen angezeigt werden diese Fehlermeldung an:

Notice: Undefined variable: Seiten in C:\Programme\TSW\Apache2\htdocs\data\list.php on line 86

Vielleicht hilfts euch!
 
nun ja,

da du deinen code beschnitten hast, können wir hier ja gar nicht bis 86 zählen - ganz davon abgesehen, dass wir dazu zu faul sind ;)

kopier uns mal ca 10 Zeilen vor bis 10 Zeilen nach der Zeile 86 und poste sie

zu dem Einträge anzeigen problem:

$start = ($_GET[site] -1) * $proseite;

und dann $start in die select - Abfrage

Sollte so eigentlich funktionieren
 
Also ich habs durch bissl logisches denken erstmal so hinbekommen...

Man sollte bei der auswahl der Seite auch die Area hinschreiben (LIKE - Brauch ja ne Variable)...

Wegen der andren möglichkeit:
Versteh ich irgendwie net ganz wo ich das hin tun soll..
 
"SELECT * FROM $tabelle WHERE area LIKE '" . $showarea . "' LIMIT $site,$prosite"

da ersetzt du dann $site durch $start

aber anscheinend hast du's ja auch so zum Laufen gebracht - verwundert mich zwar - aber so langs läuft ;)
 
Zurück