automatischer Seitenwechsel bei 25 Einträgen

hmm... heute so viel Quelltext gesehen und geändert und durchdacht, dass ich etwas länger brauche...

ich lege jetzt einmal den Quelltext hierher, wie ich es jetzt schreiben würde:
PHP:
$suchen=($_POST['suchen']);
$erg_wort=($_POST['name']);
$sort=($_POST['ordnen']);
$count="";
$seite="";
$max="25";
$sql="";
$result="";
if ($erg_wort!=""){
echo"<p>Treffer mit dem Schlagwort <b>",
($erg_wort), "</b></p>\n";
$count="SELECT id,name,original_name,jahr,version,bild,cat,info,actors,fsk,quelle,kommentar FROM dvd_uebersicht ".
 "WHERE $suchen LIKE'%" . ($erg_wort) . "%' " .
"ORDER BY $sort LIMIT(seite-1)*$max,$max";
$sql="SELECT COUNT(*) FROM dvd:uebersicht".
 "WHERE $suchen LIKE'%" . ($erg_wort) . "%' " .
"ORDER BY $sort";
}
//echo $sql;
$result=mysql_query($sql);
$seite=mysql_query($count);
 
Ben Ben hat gesagt.:
PHP:
mysql_query("SELECT..... LIMIT ($seite-1)*$max, $max");

in seite stehen die gesamtdatensätze! -1 bedeutet, einen ds zurück und dann die ganze rechnung von vorn...
aber in der reihenfolge habe ich logischerweise keine ergebnisse, denn das vorgehen der php datei ist flgendes:

Variablen einrichten:
PHP:
$suchen=($_POST['suchen']); 
$erg_wort=($_POST['name']); 
$sort=($_POST['ordnen']); 
$count=""; 
$seite=""; 
$max="25"; 
$sql=""; 
$result="";

Abfrage, ob in $erg_wort etwas drinsteht
PHP:
if ($erg_wort!=""){ 
echo"<p>Treffer mit dem Schlagwort <b>", 
($erg_wort), "</b></p>\n";

SQL-Anweisung zur selektion der Daten:
PHP:
$sql="SELECT id,name,original_name,jahr,version,bild,cat,info,actors,fsk,quelle,kommentar FROM dvd_uebersicht ". 
"WHERE $suchen LIKE'%" . ($erg_wort) . "%' " . 
"ORDER BY $sort LIMIT(seite-1)*$max,$max";

SQL-Anweisung zum Zählen der Ds:
PHP:
$count="SELECT COUNT(*) FROM dvd:uebersicht". 
"WHERE $suchen LIKE'%" . ($erg_wort) . "%' " . 
"ORDER BY $sort";

Füllen der Variablen mit den Ergebnissen:
PHP:
$result=mysql_query($sql); 
$seite=mysql_query($count);


ABER:
Wenn ich das alles so in der reihenfolge ablaufen lasse, habe ich in $seite NICHTS stehen. DUMMERWEISE brauche ich ja $seite zum rechnen und da ist anscheinend das Problem. Deshalb habe ich keine Ds, da in der SELECT Abfrage mit $seite gerechnet wird, um die anzuzeigenden Ds zu ermitteln. Aber da $seite leer ist, kann er auch keine Ds anzeiegn. umgekehrt, muss er ja erst mit count herausfinden, wieviele Ds da sind.. total verzwickt...
 
@redlama: $seite enthält die Seitennummer beginnend ab 1. Wenn ich nun aber auf seite 1 bin will ich aber von 0 bis 30 zählen, daher $seite-1, wenn ich auf Seite 2 bin will ich von 30-60 usw....
Man könnte es natürlich auch ohne das $seite-1 machen wenn man die Seiten intern beginnen ab 0 übergibt, finde ich dann aber etwas durcheinandern für den Link von Seite 1 eine 0 zu übergeben usw.... aber das ist Geschmackssache...
 
@Ben Ben...
sag mal, ob die Reihenfolge stimmt, die ich da angeschlagen hab oder ob ich noch was ändern muss.
ich bin heute irgendwie aus der Umsetzungsphase raus, aber versuchen kann mans ja. Wenn du nen Vorschlag hast, wie ich das Quelltextmäßig umstricken kann, dann bitte schreiben... :)
 
Ben Ben hat gesagt.:
@redlama: $seite enthält die Seitennummer beginnend ab 1. Wenn ich nun aber auf seite 1 bin will ich aber von 0 bis 30 zählen, daher $seite-1, wenn ich auf Seite 2 bin will ich von 30-60 usw...[...]
$seite kann ja sein, aber uwee hat nur (seite-1) nicht ($seite-1) in seiner Anweisung, ...

redlama
 
*ächz*
ein tippfehler...
aber im Quelltext steht es richtig, also is da nicht der haken!
SORRY

NATÜRLICH MUSS ES ÜBERALL $seite HEISSEN!
 
Lass Dir mal bitte beide Statements per echo ausgeben, also
PHP:
echo "$sql<br>$count<br>";
und poste mal das Ergebnis.

redlama
 
$sql:
SELECT id, name, original_name, jahr, version, bild, cat, info, actors, fsk, quelle, kommentar, fsk2, version2 FROM dvd_uebersicht WHERE name LINKE'%%%' ORDER BY name LIMIT (-1)*25,25

$count:
SELECT COUNT(*) FROM dvd_uebersicht WHERE name LIKE '%%%' ORDER BY NAME



KEINE ERGEBNISSE VORHANDEN (es müssen 341 sein)
wenn ich auf die alte konfiguration stelle, sind alle ergebnisse da!
 
Zurück