switch / query probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robin

Robin

11/12/2006 13:49:00
Quote Anchor link
Hallo,

ik gebruik een switch functie om te bepalen welke optie (extrazoek) een bezoeker heeft aangevinkt. daarna word er adhv de gekozen optie een query uitgevoerd. Dit lukt allemaal prima.

echter wil ik nu een tweede optie ($optie) toevoegen die bezoekers aan kunnen klikken. Dit lukt prima zolang een bezoeker iets heeft ingevuld, maar indien een bezoeker niets invuld moet alles verschijnen, echter dit krijg ik niet voor elkaar.

voorbeeld ($optie) :

een bezoeker vinkt bij optie (merk van fiets) aan "batavus". $optie bestaat nu dus uit "batavus". Na het uitvoeren van de query worden netjes alle resultaten getoont met alleen fietsen van het merk "batavus".

als de bezoeker had gekozen voor optie "alles", dan had $optie bestaan uit "alles" en hadden alle merken getoont moeten worden.

maar hoe zet ik dit in de query ?

in principe moet deze regel dan weggelaten worden en dan werkt alles prima : AND merk= \"$optie\"


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
<?php

$extrazoek
= $_GET['extrazoek'];
$optie = $_GET['optie'];


switch ($_GET['extrazoek']) {
  case
"zoekalles":
    $query = "SELECT *,
              COUNT(*) AS occurrences FROM websites p, word w, occurrence o
              WHERE p.page_id = o.page_id AND
              w.word_id = o.word_id AND
              w.word_word = '"
.$zoekwoorden[$i]."'
              AND merk= '"
.$optie."'
              GROUP BY p.page_id
              ORDER BY occurrences DESC"
;
              break;

case
"normaal":
    $query = " SELECT *,
              COUNT(*) AS occurrences FROM websites p, word w, occurrence o
              WHERE p.page_id = o.page_id AND
              w.word_id = o.word_id AND
              w.word_word = '"
.$zoekwoorden[$i]."'
              AND merk= '"
.$optie."'
              AND type='nee'
              GROUP BY p.page_id
              ORDER BY occurrences DESC"
;
              break;

  case
"premium":
    $query = " SELECT *,
              COUNT(*) AS occurrences FROM websites p, word w, occurrence o
              WHERE p.page_id = o.page_id AND
              w.word_id = o.word_id AND
              w.word_word = '"
.$zoekwoorden[$i]."'
              AND merk= '"
.$optie."'
              AND type='ja'
              GROUP BY p.page_id
              ORDER BY occurrences DESC"
;
              break;

?>


nu heb ik het volgende al geprobeerd. dit had ik onder de switch gezet maar dat werkte niet :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

if ($optie == 'alles')
{
        
}

else
{
          $query .= " AND merk= '".$optie."'";
}


?>
 
PHP hulp

PHP hulp

22/12/2024 17:02:03
 
Joren de Wit

Joren de Wit

11/12/2006 14:34:00
Quote Anchor link
Splits je query op, en voeg alleen dingen aan je query toe als ze ook toegevoegd moeten worden. Dus bijvoorbeeld zoiets:
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
<?php

$extrazoek
= $_GET['extrazoek'];
$optie = $_GET['optie'];

$query = "SELECT *,
          COUNT(*) AS occurrences FROM websites p, word w, occurrence o
          WHERE p.page_id = o.page_id
          AND w.word_id = o.word_id
          AND w.word_word = '"
.$zoekwoorden[$i]."'";

switch ($_GET['extrazoek'])
{
    case
"normaal":
        $query .= " AND type='nee'";
        break;

    case
"premium":
        $query = " AND type='ja'";
        break;
}


if($opties != 'alles')
{

    $query .= " AND merk = '".$optie."'";
}


$query .= " GROUP BY p.page_id ORDER BY occurrences DESC";
?>


ps. Niet getest, dat zul je zelf even moeten doen.
 
Robin

Robin

11/12/2006 15:38:00
Quote Anchor link
ik ga het meteen even testen. in ieder geval alvast bedankt voor de moeite
 



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.