switch / query probleem
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)
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
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;
?>
$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)
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
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";
?>
$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.
ik ga het meteen even testen. in ieder geval alvast bedankt voor de moeite