Bilder Galerie Weiter- / Zurück Button

Er müsste ja zumindest noch wissen, ob noch Bilderchens nach dem angezeigten vorhanden sind, und der zurück-button sollte ja auch nur gehen, wenn schon bilder angschaut wurden. mit "Limit 1" wird da nix zu machen sein *denk* ;)

Also müsste man den Query so gestalten, dass man sich alle Bilder nur mit ID ausgeben lässt, den Krams in einem Array speichert und dann sieht, an welcher Stelle das Bild gerade ist. Wenn noch welche danach kommen, springe halt weiter und mache einen Select in der Tabelle ...

PHP:
$SQL = "SELECT id FROM bilder";
$res = mysql_query($SQL);
$bilder = array();

while( $ret = mysql_fetch_array($res) )
  array_push($bilder, $ret['id']);

$pos = array_search($current_image, $bilder);
if( $pos > 0 )
  $zurueck = 1;

if( $pos < count($bilder) )
  $weiter = 1;

Anhand der If-Abfrage siehst Du nun, ob vor- und Nach-bilder im Array sind.
Der Schlüssel, den Array_search liefert, liefert Dir ja die Id des Bildes, somit kannst Du
das ab da ja weiter verwenden...

LG
Andy
 
mit +1 gehts nicht da ich mehrere Kategorien habe und ich will inerhalb einer Kategorie hin und her gehen können...

MfG Gunah
 
Ja und ? Kannst Du doch, indem Du an den QueryString die ID der Galerie anhängst ...
sorry, aber ich werde hier kein komplettes Galerie-Script posten - selbst ist der Mann, also probier etwas aus, und wenn Du nicht weiter kommst, stell ne Frage, das ist einfacher für alle ;)
 
ich habe es jetzt so in der art wie andy72 beschrieben hat gemacht nur funktioniert meins nicht richtig...


die gid wird per GET übertragen ins Script
PHP:
$bilder = array(); 

$r='0';
$resultarray=mysql_query("SELECT id FROM ".$mysqlprefix."_referenzen WHERE `group`='".intval($gid)."' ORDER BY `firma` ASC ");
while($row=mysql_fetch_array($resultarray)) @array_push($bilder, $row['id']); 


$result=mysql_query("SELECT r.*,g.name as gname,g.desc as gdesc,g.id as gid,g.file FROM ".$mysqlprefix."_referenzen as r,".$mysqlprefix."_ref_group as g WHERE r.`group`=g.id AND g.id='".intval($gid)."' AND r.id='".intval($id)."' LIMIT 1;");
while($row=mysql_fetch_array($result)) {
@reset($bilder);
current($row); //current($bilder); // geht auch nicht
$nextb=next($bilder);
echo '<br />'.$nextb;
if(!empty($nextb)) $nextbutton='&nbsp;<a href="misc.php?id='.intval($nextb).'&amp;gid='.intval($gid).'"><img src="http://www.tutorials.de/forum/images/button_weiter.jpg" alt="" width="91" height="26" /></a>';
else $nextbutton='';
reset($bilder);
current($row); //current($bilder); // geht auch nicht
$prevb=prev($bilder);
if(!empty($prevb)) $prevbutton='<a href="misc.php?id='.intval($prevb).'&amp;gid='.intval($gid).'"><img src="http://www.tutorials.de/forum/images/button_zurueck.jpg" alt="" width="91" height="26" /></a>&nbsp;';
else $prevbutton='';

das problem ist ich kann vom 1 zum 2 jetzt per Weiter klick aber dort hänge ich fest... is kein Zurück Button da, und der Weiter Button hat immer den gleichen wert im Link (also vom 2ten Bild...)

Danke schonmal im Vorraus

PS:/// als info nochmals nach der id=2 kommt id=5 und dann id=1... da nach namen sortiert ;)
 
Zuletzt bearbeitet:
Hallo!
PS:/// als info nochmals nach der id=2 kommt id=5 und dann id=1... da nach namen sortiert ;)
Du darfst nicht nach der ID auswählen, da diese 1. durch die Sortierreihenfolge durcheinandergewürfelt ist und 2. auch nicht unbedingt immer lückenlos ist (z.b. wenn ein Eintrag gelöscht wird).
Arbeite lieber mit LIMIT, genügend Beispiele zu einer Blätterfunktion findest Du hier im Forum.

Beispiel:
PHP:
SELECT FROM `tabelle` ORDER BY `spalte` LIMIT 4,1
holt das 4. Bild aus der Datenbank in abhängigkeit der Sortierreihenfolge.
"LIMIT 7,1" würde dann das 7. Bild holen.
Du musst also den Wert vor dem Kommata jedesmal erhöhen (weiter) bzw. reduzieren (zurück).

Gruss Dr Dau
 
Zurück