Hilfe bei vor und zurück links/Buttons einer Bildergallerie...

Hallo liebe Progger

Habe mal ne ganz simple Gallerie programmiert, welche mit Hilfe einer Datenbank funktioniert...jetzt scheitere ich jedoch an dem Versuch, mit VOR und ZURÜCK Buttons durch die einzelnen Bilder einer Gallerie zu gelangen.

Lese die Bilder aus der Datenbank, und Selektiere mit MySQL die Tabelle Bilder und Gallerien bei welchen, die mit einem Link übergebene Gallerie ID übereinstimmen. Dann werden alle Bilder der entsprechenden Gallerie angezeigt. Wenn man dann ein Bild anklickt wird es einzeln auf der Seite angezeigt. Nun möchte ich unter diesem einen Bild vor und zurück Buttons (oder Links, guck ich noch was schöner aussieht) haben, die durch die Bilder der entsprechenden Gallerie durchgehen...

so, nun versteht ihr was ich gerne haben möchte, hoffe ich? :p

also mein Code sieht bis anhin so aus:

hier wird das einzelne bild mit den übergebenen ID's ausgelesen und angezeigt..
Code:
    $bild = $_REQUEST["bild_id"];
    $gallerie = $_REQUEST["galname"];    

    
    $sql = "SELECT * FROM bilder WHERE pk_bild=$bild";
    $result = mysql_query($sql,$conn) or die(mysql_error());
    
    while ($ergebnis = mysql_fetch_array($result)) {
    
    echo "<a href='Bilder/".$gallerie."/".$ergebnis["bild_name"]."' target=_blank><img src='Bilder/".$gallerie."/".$ergebnis["bild_name"]."' width='450' border='0'></a>";
    $gallerie2 = $ergebnis["fk_gallerie"]; //diese Variable brauche ich für die 2. Abfrage..
    }
nun hab ich nochma eine weitere Abfrage gemacht, bei welcher ich möchte, dass alle Bilder der selben Gallerie ausgewählt werden...nun, aber wie kriege ich die jetzt gescheit raus, dass ich die dann mit den Buttons Vor und Zurück auch anwählen kann...irgendwie, dass ich das Ergebnis in ein Array speichere? leider versteh ich nicht ganz wie dass dann genau aussehen sollte...
Code:
         $sql2 = "Select * From gallerie Join bilder ON (gallerie.pk_gallerie = bilder.fk_gallerie) Where gallerie.pk_gallerie=$gallerie2";
         $res = mysql_query($sql,$conn) or die(mysql_error());
         
                
         while ($erg = mysql_fetch_array($res)) {
         
         $bild = $erg["pk_bild"];
        
         }

Ich hoffe ihr versteht ein wenig, und könnt mir eine konkrete simple Lösung zeigen, da ich mit den Lösungen aus dem Forum und auch anderen aus dem Internet nicht wirklich klarkam..
 
Zuletzt bearbeitet:
Hi also ohne die ein Beispiel zu geben und ganz simpel:
Ich nehme an in deiner Gallery sind die neusten Bilder vorne.

Start-ID = Anfangsbild das User ausgewählt hat
next = ID < Start-ID
previous = ID > Start-ID

next und previous entweder per link oder per formular dann auswerten was der user gewählt hat (rechts oder links) die entsprechende Mysql-Abfrage starten, Bild ausgeben.

mfg
 
Hier mal zur Veranschaulichung wie ich das auf meiner Website geregelt hab.
PHP:
$sqldb->query("select * from `images` where `gallery`='".$gallery['id']."' order by `filename`");
$num_images=$sqldb->num_rows();
$counter=1;
while ($search_image=$sqldb->fetch_assoc())
	{
		if (isset($new_image))
			{
				$prev_image=$new_image;
			}
		$new_image=$search_image;
		if ($search_image==$image)
			{
				break;
			}
		$counter++;
	}
if ((isset($prev_image)) || ($counter<$num_images))
	{
		$changes[$changesection].='<p>';
		if (isset($prev_image))
			{
				$changes[$changesection].='<a href="index.php?subsite=showimage.php&amp;image='.$prev_image['id'].$sessionparm_link.'"><img src="websitepics/previous.jpg" alt="Previous Picture"></a>';
			}
		else
			{
				$changes[$changesection].='<img src="websitepics/nomore.jpg" alt="No more pictures">';
			}
		if ($counter<$num_images)
			{
				$next_image=$sqldb->fetch_assoc();
				$changes[$changesection].='<a href="index.php?subsite=showimage.php&amp;image='.$next_image['id'].$sessionparm_link.'"><img src="websitepics/next.jpg" alt="Next Picture"></a>';
			}
		else
			{
				$changes[$changesection].='<img src="websitepics/nomore.jpg" alt="No more pictures">';
			}
		$changes[$changesection].='</p>';
	}
$changes[$changesection].='<hr>';
$changes[$changesection].='<a href="imagefile.php?id='.$image['id'].'" target="_blank"><img src="imagefile.php?id='.$image['id'].'" alt="Picture '.$image['id'].'"></a>';
$changes[$changesection] wuerde in Deinem Fall dann im Grunde echo entsprechen. Bei mir, templatebedingt, erstmal alles in ein Array ($changes) geschrieben und spaeter im Template eingetragen und damit ausgegeben.
 
Hi erstma danke für die Antwort..

@Online-Skater..hab zwar fast die selbe Lösung schon mal ausprobiert, aber ich war zu doof für, sie zu verstehen..

wie muss ich dann jetzt meine Abfrage gestalten, dass ich dann per Klick immer ein Bild weitergehe, welches sich in der selben Gallerie befindet? Das verstehe ich leider immer noch nich ganz..

PS: @Dennis...dein Beispiel ist mir leider schon wieder zu komplex für meine Lösung und für mich als Anfänger / Laie noch etwas schwierig zu verstehen...

hier mal zur Veranschaulichung meines Beispiels die gesamte Seite:

Code:
<table background="img/artikel_background.jpg" width="90%" align="center">
<tr><td width="20"></td>
<td></td>
<td align="center">
<BR>
<?
	
	$bild = $_REQUEST["bild_id"];
	$gallerie = $_REQUEST["galname"];	

	
	$sql = "SELECT * FROM bilder WHERE pk_bild=$bild";
	$result = mysql_query($sql,$conn) or die(mysql_error());
	
	while ($ergebnis = mysql_fetch_array($result)) {
	
	echo "<a href='Bilder/".$gallerie."/".$ergebnis["bild_name"]."' target=_blank><img src='Bilder/".$gallerie."/".$ergebnis["bild_name"]."' width='450' border='0'></a>";
	$gallerie2 = $ergebnis["fk_gallerie"];
	}


		 $sql2 = "Select * From gallerie Join bilder ON (gallerie.pk_gallerie = bilder.fk_gallerie) Where gallerie.pk_gallerie=$gallerie2";
		 $res = mysql_query($sql,$conn) or die(mysql_error());
		 

		 		 
		 while ($erg = mysql_fetch_array($res)) {
		 
		 $bildid = $erg["pk_bild"];
		 
		//hier die Regelung der Variablen $previous und$ next, aber keine Ahnung wie..:-p
		 
		 }
		 
		
?>
<hr color="#FF9900">
<BR>
<a href="index.php?bild_id=<? echo $previous;  ?>&galname=<? echo $gallerie; ?>">Zurück</a>
<a> -/- </a>
<a href="index.php?bild_id=<? echo $next; ?>&galname=<? echo $gallerie; ?>">Vorwärts</a>

</td><td width="20"></td></tr>
</table>
 
Zuletzt bearbeitet:
Einfach alle Bilder(-IDs) einer Gallerie in ein Array lesen, mit prev() und next() kannst du dann sehr gut arbeiten.

Das Thema gibt es aber schon einige male hier im Forum.
 
Genau vor dem selben Problem stand ich vor ca 3 Tagen auch ^^

Also. Du hast ja bestimmt einen Vor- und Zurück-Button, und eigentlich musste nur die ID vom nächsten bild auslesen lassen und in den Link einsetzten. Das wars :)
Wobei ich jetzt noch einen jump bei mir eingebaut habe, womit der (falls er beim ersten Bild angekommen ist) direkt zum allerletzten Bild springen kann und umgekehrt

PHP:
/** Mysql auslese der ID **/
$snextid_res = mysql_db_query("$mysql_db", "SELECT id AS shownext FROM pictures_show WHERE id > $showid ORDER BY id ASC LIMIT 1");
$snextid = mysql_fetch_array($snextid_res);

/** Definieren der Nächsten ID **/
$nextid = "$snextid[shownext]";

/** umsetzten der Next ID **/
echo "<a href=\"pictures.php?id=$nextid\">(Next)</a>
Hoffentlich hab ich dein problem richtig verstanden. :)
 
Zurück