mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 27.04.2024 04:26 Benutzername: Passwort: Auto-Login

Thema: mySQL nächstes Ergebnis vom 20.02.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> mySQL nächstes Ergebnis
Autor Nachricht
Smooth-Graphics
Threadersteller

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 20.02.2007 18:54
Titel

mySQL nächstes Ergebnis

Antworten mit Zitat Zum Seitenanfang

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. * grmbl *
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
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
pRiMUS

Dabei seit: 09.09.2003
Ort: Vienna
Alter: 48
Geschlecht: Männlich
Verfasst Di 20.02.2007 18:56
Titel

Antworten mit Zitat Zum Seitenanfang

wenn du alle einträge schon hast, schreib das array in eine session, und mach dir damit deine vor und zurück links.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Smooth-Graphics
Threadersteller

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 20.02.2007 19:08
Titel

Antworten mit Zitat Zum Seitenanfang

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....? *hu hu huu*

danke trotzdem!
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst Mi 21.02.2007 10:19
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
magicslider

Dabei seit: 04.02.2007
Ort: WW
Alter: -
Geschlecht: Männlich
Verfasst Mi 21.02.2007 12:37
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
 
Ä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?
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.