Menu behalve gekozen id

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Donald Boers

Donald Boers

22/05/2015 09:24:34
Quote Anchor link
Ik heb een foto pagina waar default het laatst toegevoegde foto album wordt getoond.:

$sql = "SELECT *
FROM gallery_fotos
WHERE gallery_id = (
SELECT max(gallery_id) FROM gallery_fotos
)
ORDER BY display_order ASC";

$stmt = $this->pdo->query($sql);
return $stmt->fetchAll();

Verder heb ik een menu met de overige foto albums:

$sql = "SELECT gallery_id
, gallery_titel
FROM galleries
WHERE gallery_id <>(
SELECT MAX(gallery_id) FROM galleries)
ORDER BY display_order";

$stmt = $this->pdo->query($sql);

return $stmt->fetchAll();

De links in het menu zien er als volgt uit:

<a href="/fotos/
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $value['gallery_id'] ?>
">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $value['gallery_titel']; ?>
</a>

Op zicht werkt het allemaal prima het enige waar ik niet uitkom is de query voor het menu gedeelte. Hierin wil ik eigenlijk alle albums tonen behalve die gene die gekoen is uit het menu.

Ik hoop dat dit een beetje begrijpelijk is?

Alvast bedankt
 
PHP hulp

PHP hulp

27/04/2024 05:41:01
 

22/05/2015 09:48:32
Quote Anchor link
Wat me opvalt aan de eerste query is dat gallery_id niet uniek moet zijn om de query zinvol te maken. Omdat er vaak een AUTO_INCREMENT zit op een id, en de combinatie van MAX() in de geneste query lijkt het er op alsof je een lijst van foto's ophaalt van een meest recente galerij.
De tweede query haalt alle titels van galerijen op _behalve_ die van de 'meest recente'? galerij.
Die logica ontgaat mij een beetje maar dat maakt niet uit; als je de data krijgt die je wilt hebben is het goed.

Je haalt nu dus de data binnen in PHP, het enige is dat je het gebruikt in een menu waarin je geen dubbele link wil naar het album waar je toch al bent. Goed streven. Dus je weet ergens wat het ID is van het album waar je nu bent, in een $_SESSION variabele of iets dergelijks. Dan kan je die ID naar de database sturen via het WHERE statement met een extra regel er na, als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql .= ' AND `gallery_id` != ' . $_SESSION['gallery_id'];
 
Thomas van den Heuvel

Thomas van den Heuvel

22/05/2015 14:39:39
Quote Anchor link
Wat ook vaak gedaan wordt is de link naar het "actieve item" niet schrijven als link, maar als dikgedrukte tekst, of met een andere (achtergrond)kleur zodat je kunt zien welk actueel item je aan het bekijken bent.

Ik denk dat het weglaten van het actieve item verwarrend is. Stel dat je snel door de items wilt bladeren, je kunt dan niet meer zien waar je gebleven was. Beter is om gewoon alles af te (blijven) drukken als je het mij vraagt, en daarbij het actieve item op een of andere manier te onderscheiden van de rest.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.