resultaat opzoekquery in array?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Zuppo

zuppo

02/12/2006 10:01:00
Quote Anchor link
'lo allemaal,
Ik zoek een manier om het resultaat van een opzoekquery te bewaren zodat je het terug kan oproepen als je één van de items uit de overzichtslijst in detail bekijkt.
Daarnaast wil ik ook een knop plaatsen op de detailfiche waarmee je het vorige of volgende item in de lijst meteen in detail kan bekijken.
Iemand een idee hoe je dat aanpakt?
</Zuppo>
 
PHP hulp

PHP hulp

17/11/2024 19:36:32
 
Frank -

Frank -

02/12/2006 11:09:00
Quote Anchor link
Tijdelijk bewaren: Zet de boel in een sessie

Vorige/volgende: url met daarin het id van het vorige/volgende item, /items.php?code=23 om naar item nr. 23 te gaan.

Succes!
 
Zuppo

zuppo

02/12/2006 15:29:00
Quote Anchor link
Sessie: Klinkt goed, maar 'k snap niet goed hoe 'k er aan moet beginnen
Vorige/Volgende: OK, maar wat als de ID's van m'n fiches niet op elkaar volgen?
Mooi kontje heb je
;-)
 
Frank -

Frank -

02/12/2006 16:37:00
Quote Anchor link
Hier een voorbeeldje hoe je met previous en next door een array kunt navigeren. De id's hoeven niet opeenvolgend te zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
error_reporting(E_ALL);

$array = array(23 => 'aap', 48 =>'noot', 123 =>'mies', 458 => 'hond');

echo '<style type="text/css">ul li {display:inline;}</style>';

echo '<ul>';
foreach ($array as $key => $value) {
    echo '<li><a href="?item='.$key.'">'.$value.'</a></li>'.PHP_EOL;
}

echo '</ul>';

if (isset($_GET['item'])) {
    foreach ($array as $key =>$value) {
        if ($key == $_GET['item']) {
            echo '<div><p>'.$array[$_GET['item']].'</p>';
            
            $prev = prev($array); // en nu terug naar de vorige
            $prevkey = array_keys($array, $prev);
            if (!empty($prevkey)) {
                $prev = '<a href="?item='.$prevkey[0].'">Previous</a>';
            }

            else $prev = 'Previous';
            
            if(!$next = next($array)){
                reset($array);
            }

            $next = next($array);
            $nextkey = array_keys($array, $next);
            if (!empty($nextkey)) {
                $next = '<a href="?item='.$nextkey[0].'">Next</a>';
            }

            else {
                $next = 'Next';
            }

            echo $prev.' | '.$next.'</div>';
        }

        else {
            $next = next($array);
        }
    }
}

else {
    echo 'Geen item geselecteerd';
}

?>
Het verdient geen schoonheidsprijs, maar het werkt... Wellicht komt er iemand met betere oplossing.

De sessie mag je zelf inbouwen, de array moet dus in deze sessie komen te staan en in mijn voorbeeldje gebruik je dan overal de sessie (en dus niet de hardcoded array, dat is slechts een voorbeeldje).

Edit: Deze ziet er wat beter uit. (x)html-valid maken, mag je zelf doen.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Zuppo

zuppo

09/12/2006 15:56:00
Quote Anchor link
Hallo Frank,
Sorry dat 't zo lang heeft geduurd voor ik reageer, maar ik was er effe tussenuit.
Heel erg bedankt voor je uitleg. Ik heb 't script effe uitgeprobeerd en 't werkt prima. Daar ga je ook andere NB-php'ers plezier mee doen, denk ik. Wat me (en hen misschien ook) niet helemaal duidelijk is: hoe krijg ik het resultaat van m'n query omgezet in zo'n soort array als jij hier gebruikt?
</zuppo>
 



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.