Vorige / Volgende knoppen

Status
Niet open voor verdere reacties.

BrEeZeR

Inventaris
Lid geworden
27 apr 2001
Berichten
12.877
Hoi,

Ik ben bezig met een fotoalbum en nu wil ik als je op een foto klikt 2 links hebben namelijk: vorige / volgende. Zodat de bezoeker makkelijk door foto's kan klikken.

Iemand een idee hoe ik dit het beste kan aanpakken? Heb al wat zitten prutsen met limit in de query enzo maar het wil niet echt lukken.

Layout van de database:

Code:
  `fotoid` int(11) NOT NULL auto_increment,
  `fotoalbumid` int(11) NOT NULL default '0',
  `bestandsnaam` varchar(70) NOT NULL default '',
  `extentie` varchar(4) NOT NULL default '',
  `grootte` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`fotoid`)

Alvast bedankt !
 
Laatst bewerkt:
PHP:
<?
$aantal_fotos_per_pagina = 24;
$pagina = 0; // eerste pagina
  if(isset($_GET["pagina"]) == TRUE)
  {
  $pagina = ((int) $_GET["pagina"]);
  }

$start = ($pagina * $aantal_fotos_per_pagina);

$albumid = ((int) $_GET["albumid"]);
query = ("SELECT * FROM fotoboek WHERE fotoalbumid = '" . $albumid . "' ORDER BY fotoid ASC LIMIT " . $start . "," . $aantal_fotos_per_pagina);
$result = mysql_query($query) or die("Kon query niet uitvoeren: " . mysql_error());
  if(mysql_num_rows($result) == 0)
  {
  echo "Geen foto's op de opgegeven pagina";
  }
  else
  {
    while($rij = mysql_fetch_object($result))
    {
    // codes voor weergeven foto's ...
    }
  }
Zoiets ... :)

Succes :thumb:
 
Tnx JP, deze functie zou ik nog toevoegen en ik bedoelde met dit topic eigenlijk iets anders maar dit kon ik ook goed gebruiken bedankt hiervoor.

Hoe krijg ik nu die links als vorige / volgende te zien? Want het script moet wel weten wanneer er wel en niet een link moet staan. (Als er 50 foto's zijn en je zit op pagina 2 moet hij geen link naar de 3de pagina weergeven).

Wat ik eigenlijk bedoelde met m'n vraag:

Je gaat bijv naar deze pagina, en onder de foto wil ik dan links van vorige en volgende hebben. (Nu lopen de id's niet altijd op dus kan niet fotoid + 1 of - 1 doen).
 
Ow ja, daar ging ik naar toe :o.
Etenstijd enzo, dingen ff snel afgemaakt :p.
De variabele $pagina kun je gebruiken:
PHP:
  if($pagina == 0)
  {
  echo "Vorige";
  }
  else
  {
  echo "<a href=\"viewalbum.php?pagina=" . ($pagina - 1) . "\">Vorige</a>";
  }

echo " || ";
echo "<a href=\"viewalbum.php?pagina=" . ($pagina + 1) . "\">Volgende</a>";
Als je ook nog wil controleren of je bezoeker op de laatste pagina zit, dan zul je nog een query moeten uitvoeren waarin je telt hoeveel rijen er zijn. Hierop baseer je het aantal pagina's, dan vergelijk je of de pagina waarop de bezoeker zit gelijk is aan het aantal pagina's, zo ja dan geen link onder 'Volgende' ...

[big edit]
Maar dat hoort bij het overzichtje van de foto's, jij vroeg om de foto's zelf (mijn fout :rolleyes: )
Zoals jij al zegt, lopen de id's niet altijd even mooi op, wanneer je een foto verwijderd ontstaat er een gaatje. Dus moet je 3 id's ophalen, van de vorige foto, de volgende foto en de huidige foto. Je zal dus een query moeten uitvoeren waarin je de hele tabel doorzoekt op album, dit opslaat in een array. In die array zoek de key die de waarde van de id van de foto heeft die men nu bekijkt (jemig wat een zin :8-0: ).
Als eerste moet je dus de rij ophalen met alle gegevens van de foto die de bezoeker wil bekijken. Daarna kun je deze query uitvoeren:
PHP:
$query = "SELECT fotoid FROM fotoboek WHERE fotoalbumid = '" . $rij_foto->fotoalbumid . "' ORDER BY fotoid ASC";
$result = mysql_query($query) or die(mysql_error());
  if(mysql_num_rows($result) == 0)
  {
  die("Geen foto's in dit album");
  }

$fotoid = array();

  while($rij = mysql_fetch_object($result))
  {
  $fotoid[] = $rij->fotoid;
  }

$key = array_search($rij_foto->fotoid,$fotoid);
  if($key == 0)
  {
  $vorige_id = "";
  }
  else
  {
  $vorige_id = $fotoid[($key - 1)];
  }

$laatste = (count($fotoid) - 1);
  if($key == $laatste)
  {
  $volgende_id = "";
  }
  else
  {
  $volgende_id = $fotoid[($key + 1)];
  }
$vorige_id en $volgende_id verwijs je naar je templates. In je templates controleer je of $vorige_id gelijk is aan "", zo ja, dan geen link onder vorige, aangezien het dan de eerste foto is van dat album.
En bij $volgende_id hetzelfde, ook controleren of hij gelijk is aan "", zo ja, geen link onder volgende, aangezien het dan de laatste foto is van dat album.

Succes :thumb:
 
Laatst bewerkt:
Geplaatst door BrEeZeR
JP.. super bedankt.. het werkt perfect allemaal !
Np :thumb:
That's one big bakje patat and one big portie kip nuggets for you :D
Can't wait
kwijl.gif
:D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan