Mysql
Peppy
- datenbank
0 Peppy
hallo zusammen,
ich hab auf meiner kegelseite eine dynamische bildergalerie.
wenn man auf ein bild klickt, dann bekommt man eine grossansicht.
unter diese sollen jetzt noch 2 buttons rein - weiter und zurück.
alle daten dazu werden aus einer mysql-datenbank ausgelesen und befinden sich in einer tabelle.
wenn man links auf eine kategorie klickt, dann werden alle dazugehörigen bilder nach änderungsdatum sortiert ausgegeben.
wenn ein bild also neu kommentiert wurde, dann erscheint es zuerst.
$result = mysql_query("SELECT DISTINCT kategorie FROM $tabellenname_3 ORDER BY kategorie",$connectionid);
wie bekomme ich jetzt raus, in welcher zeile ich mich in der tabelle befinde, wenn auf ein grosses bild geklickt wurde?
und gibt es einen einfachen mysql-befehl, mit dem ich eine zeile weiter oder eine zeile zurück springen kann?
danke schonmal
$result = mysql_query("SELECT DISTINCT kategorie FROM $tabellenname_3 ORDER BY kategorie",$connectionid);
das war falsch. so ist es richtig:
$result = mysql_query("SELECT bildname, id, kategorie FROM $tabellenname_3 WHERE kategorie='$kategorie' ORDER BY abs_zeit DESC",$connectionid);
Hallo,
die lösung ist einfach:
SELECT id FROM $tabellenname_3 WHERE kategorie='$kategorie' ORDER By......
$seq=array();
while(list($id)=mysql_fetch_row($res)){
$seq[]=$id;
}
$str=rawurlencode(serialize($seq));
für die links: a href="file.php?aktuelleid=$id&sequence=$str"
in file.php baust dir die sequence wieder in ein array um, stellst über die aktuelle position fest was kommt und hohlst dir genau das aus der DB.
Vorsicht. wenn du wirklich viele elemente hast, ist es besser das ganze direkt über die DB zu handlen, dh. du suchst dir per query raus was vorher und nachher kommt und übergibst nur die id.
lg
Ludwig
dank schonmal.
ich verstehe das leider noch nicht so ganz.
$seq=array();
while(list($id)=mysql_fetch_row($res)){
$seq[]=$id;
hier werden alle ids ausgelesen und in ein array gepackt, oder?
$str=rawurlencode(serialize($seq));
das sagt mir leider gar nichts...
für die links: a href="file.php?aktuelleid=$id&sequence=$str"
hier wird die aktuelle id übergeben und alle ids, die in der jeweiligen kategorie vorkommen (als array), oder?
in file.php baust dir die sequence wieder in ein array um, stellst über die aktuelle position fest was kommt und hohlst dir genau das aus der DB.
das bedeutet das array auseinandernehmen, schauen wo die aktuelle id sich befindet und als neue id eine id weiter bzw. eine id zurück verwenden, oder?
Vorsicht. wenn du wirklich viele elemente hast, ist es besser das ganze direkt über die DB zu handlen, dh. du suchst dir per query raus was vorher und nachher kommt und übergibst nur die id.
was verstehst du unter viel? 10, 100, 1000?
gruss,
peppy
Hi,
hier werden alle ids ausgelesen und in ein array gepackt, oder?
Ja.
$str=rawurlencode(serialize($seq));
das sagt mir leider gar nichts...
erzeuge aus dem array einen string (serialize) mach ihn url konform (rawulrencode) und schreibe ihn in variable str
für die links: a href="file.php?aktuelleid=$id&sequence=$str"
hier wird die aktuelle id übergeben und alle ids, die in der jeweiligen kategorie vorkommen (als array), oder?
ja fast. nur nicht als array sondern eben als string.
das bedeutet das array auseinandernehmen, schauen wo die aktuelle id sich befindet und als neue id eine id weiter bzw. eine id zurück verwenden, oder?
$array=unserialize(rawurldecode($sequence));
$key=in_array($aktuelleid,$array);
$previd= $array[$key-1];
$nextid= $array[$key+1];
alles klar ?
was verstehst du unter viel? 10, 100, 1000?
20-50
Ludwig
alles klar ?
jo, jetzt ist alles klar. danke!
werde es mal umsetzten, aber auch die zweite variante mal versuchen.
wenn es irgendwann mal mehr als 20 bilder werden sollten, dann hab ich schonmal vorgesorgt.