Ik haal van een aantal artikelen de id's op uit een database. Vervolgens wil ik het eerste artikel laten zien, en dan een vorige/volgende knop laten zien.
Met de volgende code haal ik de id's op en plaats ik deze in een array:
Nu gaan we dus eventueel een vorige en volgende knop laten zien. Als prev() geen FALSE returned dan kan de pointer dus een plek terug en is er een waarde. In dat geval komt er een <a href=.. om een link te maken met behulp van current().
En word er daarna een next() aangeroepen om weer op de huidige positie te komen. Hetzelfde geld voor de volgende knop, alleen dan word er ipv prev() natuurlijk gekeken of next() geen FALSE retourneerd.
De code:
Als er geen $artikelId is, of deze is leeg word het eerste element uit de array gehaalt, dat gebeurd met onderstaande code
Om de zorgen dat de pointer altijd op de juiste plek staat, dus op de INDEX van het ELEMENT wat op dat moment word gebruikt is er de volgende code
Het probleem:
Ik zie dus gewoon geen volgende en vorige knop verschijnen als ik dit script aanroep. Het eerste artikel word wel gewoon netjes uit de db gehaalt. De array word ook gevuld, met count() komt er gewoon het goede aantal uit. Alleen met het bladeren schijnt er iets mis te gaan. Ik zal wel iets simpels over het hoofd zien maar kom er even niet meer uit, ben er al iets te lang mee bezig gok ik
Met de volgende code haal ik de id's op en plaats ik deze in een array:
PHP:
1
2
3
4
5
6
7
| $artikelQuery = 'SELECT id FROM tbl_portfolio WHERE categorie = '.$cat; $artikelObject = mysql_query($artikelQuery); while($artikelIds = mysql_fetch_object($artikelObject)) { $bladerIds[] = $artikelIds->id; } |
Nu gaan we dus eventueel een vorige en volgende knop laten zien. Als prev() geen FALSE returned dan kan de pointer dus een plek terug en is er een waarde. In dat geval komt er een <a href=.. om een link te maken met behulp van current().
En word er daarna een next() aangeroepen om weer op de huidige positie te komen. Hetzelfde geld voor de volgende knop, alleen dan word er ipv prev() natuurlijk gekeken of next() geen FALSE retourneerd.
De code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| //Vorige if(prev($bladerIds) != FALSE) { $vorige = '<a href="index.php?p=portfolio&cat='.$catRequest.'&id='.current($bladerIds).'"><<</a>'; next($bladerIds); } else { $vorige = ''; } //Volgende if(next($bladerIds) != FALSE) { $volgende = '<a href="index.php?p=portfolio&cat='.$catRequest.'&id='.current($bladerIds).'">>></a>'; prev($bladerIds); } else { $volgende = ''; } |
Als er geen $artikelId is, of deze is leeg word het eerste element uit de array gehaalt, dat gebeurd met onderstaande code
PHP:
1
2
3
4
5
6
7
8
9
10
11
| if($artikelId == "" || !is_numeric($artikelId)) { //Er is geen gezet Id $artikelId = reset($bladerIds); if(!$artikelId) { echo "Geen objecten gevonden."; } } |
Om de zorgen dat de pointer altijd op de juiste plek staat, dus op de INDEX van het ELEMENT wat op dat moment word gebruikt is er de volgende code
PHP:
1
2
3
4
5
6
7
| if($artikelId != "" && $artikelId > 0) { while( current($bladerIds) != $artikelId ) { next($bladerIds); } } |
Het probleem:
Ik zie dus gewoon geen volgende en vorige knop verschijnen als ik dit script aanroep. Het eerste artikel word wel gewoon netjes uit de db gehaalt. De array word ook gevuld, met count() komt er gewoon het goede aantal uit. Alleen met het bladeren schijnt er iets mis te gaan. Ik zal wel iets simpels over het hoofd zien maar kom er even niet meer uit, ben er al iets te lang mee bezig gok ik