Mysql Doppelabfrage notwendig?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
abfragen
array
ausblenden
button
check
code
datensatz
jemand
limit
mache
nachladen
offset
schau
stattfinden
super danke
symbol
system
tun
wissen
-
Hallo Community,
Ich verwende schon seit einiger Zeit dieses System um zu überprüfen ob nach einer mysql - Abfrage denn noch weitere Datensätze abgefragt werden können. Das mache ich deshalb, weil ich wissen muss, ob ich ganz unten von den Beiträgen noch ein 'weitere' Symbol einblenden muss.
Das folgende sieht vereinfacht so aus.
$counter = 0 // wird nach jeder Abfrage mit js um 30 erhöht $query = " SELECT * FROM table WHERE a = b LIMIT = 30 OFFSET = '$counter' "; $sql = mysql_query($query); while($row = mysql_fetch_assoc($sqlbest)) { //mache etwas } //Jetzt überprüfe ich hiermit ob noch weitere Beiträge zum nachladen sind $counter = $counter + 30; // dafür erhöhe ich, wie es später die nächste Abfrage tun sollte, den $counter um 30 und mache die Abfrage erneut $querycheck = " SELECT * FROM table WHERE a = b LIMIT = 30 OFFSET = '$counter' "; $sqlcheck = mysql_query($querycheck ); //Jetzt überprüfe ich, ob denn noch Datensätze darin sind mit: $check = mysql_num_rows($sqlcheck ); //und jetzt hänge ich, wenn nötig, den 'weitere' Button an if($check != 0) { print '<div id="load">weitere</div>'; }
Das ganze System funktioniert so, nur finde ich es blöd, dass immer 2 Abfragen stattfinden müssen.
Deshalb, hat jemand einen Lösungsvorschlag, wie man alles mit einer Abfrage machen kann?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Frag doch 1 Datensatz mehr ab und schau dann, ob nach den 30 Stück noch einer im Array ist.
Ist das der Fall, Link auf andere Seite, wenn nicht, einfach ausblenden. -
super danke das klappt ;)
meine Lösung jetzt:
$limit hab ich auf 31 erhöht
$i = 0; while($row = mysql_fetch_assoc($sql)) { $i++; if($i <= 30) { $isquote = TRUE; include('../templates/template_quote.php'); } elseif($i == 31 AND !empty($row)) { print '<div id="load">weitere</div>'; } }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage