Meer info over de buren uit database halen.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Www JdeRuijterNL

www JdeRuijterNL

26/07/2011 17:18:47
Quote Anchor link
Ik heb een pagina waar je al mijn foto's kunt zien.

Nu wil ik aan de hand van de gekozen foto (stel ID=4) meer informatie over achter liggende foto in het archief (ID=3) en de foto na gekozen foto (ID=5).

Hoe kan je dat zo efficiënt mogelijk uit het database krijgen met nog steeds de zelfde pagina.

Toevoeging op 26/07/2011 17:39:46:

Zoeits denk ik?
"SELECT * FROM " .self::$table_name. " WHERE cat_id=".$database->escape_value($cat_id)." and id= ".$database->escape_value($id)." -1 LIMIT 1

Eerst even testen.
 
PHP hulp

PHP hulp

28/01/2021 03:41:47
 
Bas IJzelendoorn
Beheerder

Bas IJzelendoorn

26/07/2011 17:56:07
Quote Anchor link
Nou ik zou LIMIT 1 weghalen, want dan toon je maar 1 rij.

Als ik het goed begrijp dan wil je dus waarde id 3,4,5 uit de database halen, waarbij 4 gekozen is.

Dan zou ik iets doen als:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$gekozen = '4';
$min_een = $gekozen - '1';
$plus_een = $gekozen + '1';


en dan in je query: WHERE ID = '$min_een','$gekozen','$plus_een'


 
- SanThe -

- SanThe -

26/07/2011 18:01:23
Quote Anchor link
Bas IJzelendoorn op 26/07/2011 17:56:07:
en dan in je query: WHERE ID = '$min_een','$gekozen','$plus_een'


WHERE ID IN($min_een, $gekozen, $plus_een)
 
Www JdeRuijterNL

www JdeRuijterNL

26/07/2011 18:11:27
Quote Anchor link
Ik gebruik nu:

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
    public static function find_next($cat_id=0, $id=0) {
        global $database;
        
    $result_array = self::find_by_sql("SELECT * FROM " .self::$table_name. "
    WHERE cat_id=".$database->escape_value($cat_id)." and id= ".$database->escape_value($id)." +1 LIMIT 1");
            return $result_array;
  }
 
    public static function find_prev($cat_id=0, $id=0) {
        global $database;
        
    $result_array = self::find_by_sql("SELECT * FROM " .self::$table_name. "
    WHERE cat_id=".$database->escape_value($cat_id)." and id= ".$database->escape_value($id)." -1 LIMIT 1");
        return $result_array;
  }


Als ik die aanspreek via deze manier dump hij alle resultaat die ik ook wil hebben.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
                <p><?php var_dump($prev); ?></p>
                <p><?php var_dump($next); ?></p>


Maar zo krijg ik een onbekende resultset :S WUT

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
                <p><?php var_dump($prev->id); ?></p>
                <p><?php var_dump($next->id); ?></p>


Toevoeging op 26/07/2011 18:21:26:

Ook moet dit failsafe zijn voor als er nummers ontbreken omdat er fotos uit het database zijn gehaald.

Vorig: 35
Huidig: 165
Volgende: 188
Gewijzigd op 26/07/2011 18:13:39 door www JdeRuijterNL
 
Bas IJzelendoorn
Beheerder

Bas IJzelendoorn

26/07/2011 20:01:35
Quote Anchor link
- SanThe - op 26/07/2011 18:01:23:
Bas IJzelendoorn op 26/07/2011 17:56:07:
en dan in je query: WHERE ID = '$min_een','$gekozen','$plus_een'


WHERE ID IN($min_een, $gekozen, $plus_een)


hmm vergeten. Bedankt voor de aanvulling! :-)
 
Www JdeRuijterNL

www JdeRuijterNL

26/07/2011 20:17:30
Quote Anchor link
Maar goed. Niet het antwoord wat ik zocht. Ik heb de oplossing al elders uit weten te vinden

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
"SELECT * FROM " .self::$table_name. "
    WHERE cat_id='".$database->escape_value($cat_id)."' and id < '".$database->escape_value($id)."' ORDER BY ID DESC"


toch bedankt
 



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.