Autor |
Nachricht |
Smooth-Graphics
Threadersteller
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 20.02.2007 18:54
Titel mySQL nächstes Ergebnis |
|
|
Hallo,
ich hab mir ein Galeriescript gebastelt. Wort kann man das Album wählen (selectbox -> variable wird per post gesendet) und es wird das erste Bild angezeigt. Nun möchte ich aber per buttondruck das nächste bzw. das vorherige bild anzeigen lassen. Meine idee, das per Session und reload zu machen ist leider nicht sehr schön, da der browser immer fragt, ob er nocheinmal POST daten schicken darf.
Ich muss also aus der mySQL Datenbank eigentlich nur das nächste Ergebnis auslesen, also aus der nächsten Zeile die erste Spalte ausgeben, wo der Dateiname steht.
Tut mir leid, aber ich kenne mich mit mySQL noch nicht sooo sehr gut aus, also bitte ich euch um Hilfe!
Vielen Dank!
Liebe Grüße
Smooth-Graphics
|
|
|
|
|
pRiMUS
Dabei seit: 09.09.2003
Ort: Vienna
Alter: 48
Geschlecht:
|
Verfasst Di 20.02.2007 18:56
Titel
|
|
|
wenn du alle einträge schon hast, schreib das array in eine session, und mach dir damit deine vor und zurück links.
|
|
|
|
|
Anzeige
|
|
|
Smooth-Graphics
Threadersteller
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 20.02.2007 19:08
Titel
|
|
|
ja also ich habs bis jetzt so:
Code: | <?php
$aschule = $_POST['schulauswahl'];
$aschules = htmlentities($aschule);//html special chars
mysql_select_db($database_maindb, $maindb);
//echo("SELECT* FROM maindb WHERE Schule = CONVERT(_utf8 '$aschules' USING latin1)");
$query_datensatz = "SELECT* FROM maindb WHERE Schule = CONVERT(_utf8 '$aschules' USING latin1)";
echo($_SESSION['imagecount']);
$datensatz = mysql_query($query_datensatz, $maindb) or die(mysql_error());
mysql_data_seek($datensatz,$_SESSION['imagecount']); //nächster Datensatz
$row_datensatz = mysql_fetch_assoc($datensatz);
$totalRows_datensatz = mysql_num_rows($datensatz);
//Jeden Datensatz durchlaufen und Spalte "Name" ausgeben
?> |
zum auswählen... und zum weiterschalten bis jetzt:
Code: | <?php $_SESSION['imagecount']++;header("Location: http://localhost/Kunst/galerie.php");?> |
doch dann kommt immer ein mySQL Fehler (mysql_data_seek() invalid request) wg der SESSION. Und durch das reloaden der Page bekomme ich ja zusätzlich noch das blöde Browser Frage Fenster.
Ich meine, dass hier jeder PHP Kenner schon mal sowas geschrieben hat und ich möchte ja eigentlich nur wissen wie ich das Weiterschalten am besten lösen kann....?
danke trotzdem!
|
|
|
|
|
tacker
Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht:
|
Verfasst Mi 21.02.2007 10:19
Titel
|
|
|
Lies dir einmal alle Datensätze aus und speicher sie in einer Session-Variable.
Dann arbeitest Du nur noch mit diesem Array und musst nicht mehr die DB abfragen.
Eine Alternative währe, dir aus der DB immer drei Datensätze zu holen. Den aktuellen,
den davor und den danach.
Code: | $id = 5;
$sql = "SELECT * FROM `tabelle` WHERE id>='" . ($id - 1) . "' LIMIT 3"; |
So bekommst Du maximal drei Datensätze, die Fälle "erster Datensatz" und "letzter Datensatz"
musst Du halt gesondert abfangen.
So hast Du aber nicht alle Datensätze in der Session, was bei einer riesigen DB ein großer
Vorteil ist.
|
|
|
|
|
magicslider
Dabei seit: 04.02.2007
Ort: WW
Alter: -
Geschlecht:
|
Verfasst Mi 21.02.2007 12:37
Titel
|
|
|
hi,
also ein größeres array würde ich nicht in die session holen. ist sehr langsam (es sei denn du schreibst die session in die db) und kannst es bei aktueller php version gleich knicken. (siehe Suhosin Patch) wir nutzen auf allen servern schon diesen sicherheitspatch inkl. encryption.
bau doch einen simplen google blätter mechanismus:
- erst die gesamtanzahl der datensätze ermitteln
- durch ein festgelegtes intervall teilen (falls mehrere bilder auf einer seite kommen sollen)
dann schreibst du nur deine position in die session und fragst gezielt über limit oder mysql_data_seek ab. dann meckert auch kein browser
und die datenbank ist schneller als php in einem array,....
Zuletzt bearbeitet von magicslider am So 25.02.2007 11:26, insgesamt 3-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
[solved] / [PHP/MySQL] Ergebnis der Abfrage = 0
[MYSQL] Beiträge in 2. Tabelle im Ergebnis beachten.
Aktuelles Bild auslesen und nächstes verlinken
onClick show bis nächstes Bild angeklickt wird
[PHP + mySQL] Kann Fehler in einer mySQL-Phrase nicht finden
[PHP/MySQL] MySQL Error: 1054, falsche Tabelle ausgewählt?
|
|