Aantal items in menu
Ik heb een auto site, waar gebruikers auto's kunnen zoeken.
Nu heb ik aan de linkerkant van mijn site een navigatie menu.
Dit ziet er bijvoorbeeld zo uit:
MERK
* Audi 8
* BMW 3
* Mercedes 2
KLEUR
* Rood 7
* Blauw 4
* Groen 2
Het getal wat er achter staat, is het aantal gevonden voertuigen in die categorie. Dus als je op Mercedes klikt krijg je 2 resultaten.
Dat klopt en werkt allemaal prima. Hiervoor heb ik de volgende code:
Code voor het "merk" menu:
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
if(isset($_SESSION['merk'])) {
if($_SESSION['merk'] == "1") {
echo '<a href="menu.php?merk=2" CLASS="nav2"><b>MERK</b><IMG SRC="img/spacer.gif" WIDTH="16" HEIGHT="1" BORDER="0"><img src="img/up.gif" border="0" alt="Sluit submenu"></a><br>';
$aCats = array('mcat', 'klcat');
for($catteller=3; $catteller<=3; $catteller++)
{
$soort = $aCats[$catteller - 1];
$querytest = "SELECT id, naam FROM categorie WHERE cat = '" . $catteller . "'";
$resulttest = mysql_query($querytest);
while($row = mysql_fetch_assoc($resulttest))
{
$link = 'categorie.php';
$sign = '?soort=' . $soort . '&';
foreach($aCats AS $id => $sCat)
{
$aSelectedCats = (isset($_GET[$sCat])) ? explode(",", $_GET[$sCat]) : array();
$aSelectedCats = (($id === array_search($soort, $aCats)) and (count($aSelectedCats) === 0)) ? array($row['id']) : $aSelectedCats;
if(isset($_GET['soort']) and ($_GET['soort'] === $soort))
{
if(in_array($row['id'], $aSelectedCats))
{
unset($aSelectedCats[array_search($row['id'], $aSelectedCats)]);
}
elseif($_GET['soort'] === $sCat)
{
$aSelectedCats[] = $row['id'];
}
}
if(count($aSelectedCats) > 0)
{
$link .= $sign . $sCat . '=' . implode(",", $aSelectedCats);
$sign = '&';
}
}
if( !isset( $_GET['mcat'] ) ) {
$result = mysql_query("SELECT count(*) as num FROM advertenties
WHERE mcat='".$row['id']."' AND status = '0'");
$data = mysql_fetch_assoc($result);
echo '<a href="' . $link . '" CLASS="nav">' . $row['naam'] . ' '.$data['num'].'</a><br />';
} else {
$aExplodedConditions = explode(",", $_GET['mcat']);
$aParams = array();
foreach($aExplodedConditions AS $sParam){
$aParams[] = $sParam;
}
if(in_array($row['id'], $aParams)) {
$result = mysql_query("SELECT count(*) as num FROM advertenties
WHERE mcat='".$row['id']."' AND status = '0'");
$data = mysql_fetch_assoc($result);
echo '<a href="' . $link . '" CLASS="nav3">' . $row['naam'] . ' '.$data['num'].'</a><br />';
} else {
$result = mysql_query("SELECT count(*) as num FROM advertenties
WHERE mcat='".$row['id']."' AND status = '0'");
$data = mysql_fetch_assoc($result);
echo '<a href="' . $link . '" CLASS="nav">' . $row['naam'] . ' '.$data['num'].'</a><br />';
}
}
}
} echo '<br>'; } }
if(!isset($_SESSION['merk'])) {
echo '<a href="menu.php?merk=1" CLASS="nav2"><b>MERK</b><IMG SRC="img/spacer.gif" WIDTH="16" HEIGHT="1" BORDER="0"><img src="img/down.gif" border="0" alt="Open submenu"></a><br><br>';
}
?>
if(isset($_SESSION['merk'])) {
if($_SESSION['merk'] == "1") {
echo '<a href="menu.php?merk=2" CLASS="nav2"><b>MERK</b><IMG SRC="img/spacer.gif" WIDTH="16" HEIGHT="1" BORDER="0"><img src="img/up.gif" border="0" alt="Sluit submenu"></a><br>';
$aCats = array('mcat', 'klcat');
for($catteller=3; $catteller<=3; $catteller++)
{
$soort = $aCats[$catteller - 1];
$querytest = "SELECT id, naam FROM categorie WHERE cat = '" . $catteller . "'";
$resulttest = mysql_query($querytest);
while($row = mysql_fetch_assoc($resulttest))
{
$link = 'categorie.php';
$sign = '?soort=' . $soort . '&';
foreach($aCats AS $id => $sCat)
{
$aSelectedCats = (isset($_GET[$sCat])) ? explode(",", $_GET[$sCat]) : array();
$aSelectedCats = (($id === array_search($soort, $aCats)) and (count($aSelectedCats) === 0)) ? array($row['id']) : $aSelectedCats;
if(isset($_GET['soort']) and ($_GET['soort'] === $soort))
{
if(in_array($row['id'], $aSelectedCats))
{
unset($aSelectedCats[array_search($row['id'], $aSelectedCats)]);
}
elseif($_GET['soort'] === $sCat)
{
$aSelectedCats[] = $row['id'];
}
}
if(count($aSelectedCats) > 0)
{
$link .= $sign . $sCat . '=' . implode(",", $aSelectedCats);
$sign = '&';
}
}
if( !isset( $_GET['mcat'] ) ) {
$result = mysql_query("SELECT count(*) as num FROM advertenties
WHERE mcat='".$row['id']."' AND status = '0'");
$data = mysql_fetch_assoc($result);
echo '<a href="' . $link . '" CLASS="nav">' . $row['naam'] . ' '.$data['num'].'</a><br />';
} else {
$aExplodedConditions = explode(",", $_GET['mcat']);
$aParams = array();
foreach($aExplodedConditions AS $sParam){
$aParams[] = $sParam;
}
if(in_array($row['id'], $aParams)) {
$result = mysql_query("SELECT count(*) as num FROM advertenties
WHERE mcat='".$row['id']."' AND status = '0'");
$data = mysql_fetch_assoc($result);
echo '<a href="' . $link . '" CLASS="nav3">' . $row['naam'] . ' '.$data['num'].'</a><br />';
} else {
$result = mysql_query("SELECT count(*) as num FROM advertenties
WHERE mcat='".$row['id']."' AND status = '0'");
$data = mysql_fetch_assoc($result);
echo '<a href="' . $link . '" CLASS="nav">' . $row['naam'] . ' '.$data['num'].'</a><br />';
}
}
}
} echo '<br>'; } }
if(!isset($_SESSION['merk'])) {
echo '<a href="menu.php?merk=1" CLASS="nav2"><b>MERK</b><IMG SRC="img/spacer.gif" WIDTH="16" HEIGHT="1" BORDER="0"><img src="img/down.gif" border="0" alt="Open submenu"></a><br><br>';
}
?>
Code voor het "Kleur" menu:
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
if(isset($_SESSION['kleur'])) {
if($_SESSION['kleur'] == "1") {
echo '<a href="menu.php?kleur=2" CLASS="nav2"><b>KLEUR</b><IMG SRC="img/spacer.gif" WIDTH="16" HEIGHT="1" BORDER="0"><img src="img/up.gif" border="0" alt="Sluit submenu"></a><br>';
$aCats = array('mcat', 'klcat');
for($catteller=4; $catteller<=4; $catteller++)
{
$soort = $aCats[$catteller - 1];
$querytest = "SELECT id, naam FROM categorie WHERE cat = '" . $catteller . "' ORDER BY id ASC";
$resulttest = mysql_query($querytest);
while($row = mysql_fetch_assoc($resulttest))
{
$link = 'categorie.php';
$sign = '?soort=' . $soort . '&';
foreach($aCats AS $id => $sCat)
{
$aSelectedCats = (isset($_GET[$sCat])) ? explode(",", $_GET[$sCat]) : array();
$aSelectedCats = (($id === array_search($soort, $aCats)) and (count($aSelectedCats) === 0)) ? array($row['id']) : $aSelectedCats;
if(isset($_GET['soort']) and ($_GET['soort'] === $soort))
{
if(in_array($row['id'], $aSelectedCats))
{
unset($aSelectedCats[array_search($row['id'], $aSelectedCats)]);
}
elseif($_GET['soort'] === $sCat)
{
$aSelectedCats[] = $row['id'];
}
}
if(count($aSelectedCats) > 0)
{
$link .= $sign . $sCat . '=' . implode(",", $aSelectedCats);
$sign = '&';
}
}
if( !isset( $_GET['klcat'] ) ) {
$result = mysql_query("SELECT count(*) as num FROM advertenties
WHERE klcat='".$row['id']."' AND status = '0'");
$data = mysql_fetch_assoc($result);
echo '<a href="' . $link . '" CLASS="nav">' . $row['naam'] . ' '.$data['num'].'</a><br />';
} else {
$aExplodedConditions = explode(",", $_GET['mtcat']);
$aParams = array();
foreach($aExplodedConditions AS $sParam){
$aParams[] = $sParam;
}
if(in_array($row['id'], $aParams)) {
$result = mysql_query("SELECT count(*) as num FROM advertenties
WHERE klcat='".$row['id']."' AND status = '0'");
$data = mysql_fetch_assoc($result);
echo '<a href="' . $link . '" CLASS="nav3">' . $row['naam'] . ' '.$data['num'].'</a><br />';
} else {
$result = mysql_query("SELECT count(*) as num FROM advertenties
WHERE klcat='".$row['id']."' AND status = '0'");
$data = mysql_fetch_assoc($result);
echo '<a href="' . $link . '" CLASS="nav">' . $row['naam'] . ' '.$data['num'].'</a><br />';
}
}
}
} echo '<br>'; } }
if(!isset($_SESSION['kleur'])) {
echo '<a href="menu.php?maat=1" CLASS="nav2"><b>KLEUR</b><IMG SRC="img/spacer.gif" WIDTH="16" HEIGHT="1" BORDER="0"><img src="img/down.gif" border="0" alt="Open submenu"></a><br><br>';
}
?>
if(isset($_SESSION['kleur'])) {
if($_SESSION['kleur'] == "1") {
echo '<a href="menu.php?kleur=2" CLASS="nav2"><b>KLEUR</b><IMG SRC="img/spacer.gif" WIDTH="16" HEIGHT="1" BORDER="0"><img src="img/up.gif" border="0" alt="Sluit submenu"></a><br>';
$aCats = array('mcat', 'klcat');
for($catteller=4; $catteller<=4; $catteller++)
{
$soort = $aCats[$catteller - 1];
$querytest = "SELECT id, naam FROM categorie WHERE cat = '" . $catteller . "' ORDER BY id ASC";
$resulttest = mysql_query($querytest);
while($row = mysql_fetch_assoc($resulttest))
{
$link = 'categorie.php';
$sign = '?soort=' . $soort . '&';
foreach($aCats AS $id => $sCat)
{
$aSelectedCats = (isset($_GET[$sCat])) ? explode(",", $_GET[$sCat]) : array();
$aSelectedCats = (($id === array_search($soort, $aCats)) and (count($aSelectedCats) === 0)) ? array($row['id']) : $aSelectedCats;
if(isset($_GET['soort']) and ($_GET['soort'] === $soort))
{
if(in_array($row['id'], $aSelectedCats))
{
unset($aSelectedCats[array_search($row['id'], $aSelectedCats)]);
}
elseif($_GET['soort'] === $sCat)
{
$aSelectedCats[] = $row['id'];
}
}
if(count($aSelectedCats) > 0)
{
$link .= $sign . $sCat . '=' . implode(",", $aSelectedCats);
$sign = '&';
}
}
if( !isset( $_GET['klcat'] ) ) {
$result = mysql_query("SELECT count(*) as num FROM advertenties
WHERE klcat='".$row['id']."' AND status = '0'");
$data = mysql_fetch_assoc($result);
echo '<a href="' . $link . '" CLASS="nav">' . $row['naam'] . ' '.$data['num'].'</a><br />';
} else {
$aExplodedConditions = explode(",", $_GET['mtcat']);
$aParams = array();
foreach($aExplodedConditions AS $sParam){
$aParams[] = $sParam;
}
if(in_array($row['id'], $aParams)) {
$result = mysql_query("SELECT count(*) as num FROM advertenties
WHERE klcat='".$row['id']."' AND status = '0'");
$data = mysql_fetch_assoc($result);
echo '<a href="' . $link . '" CLASS="nav3">' . $row['naam'] . ' '.$data['num'].'</a><br />';
} else {
$result = mysql_query("SELECT count(*) as num FROM advertenties
WHERE klcat='".$row['id']."' AND status = '0'");
$data = mysql_fetch_assoc($result);
echo '<a href="' . $link . '" CLASS="nav">' . $row['naam'] . ' '.$data['num'].'</a><br />';
}
}
}
} echo '<br>'; } }
if(!isset($_SESSION['kleur'])) {
echo '<a href="menu.php?maat=1" CLASS="nav2"><b>KLEUR</b><IMG SRC="img/spacer.gif" WIDTH="16" HEIGHT="1" BORDER="0"><img src="img/down.gif" border="0" alt="Open submenu"></a><br><br>';
}
?>
Werkt prima allemaal. Als ik bijvoorbeeld op Mercedes klik dan gaat hij naar: categorie.php?mcat=3 (3 staat in mijn geval voor mercedes)
Als ik DAARNA op Rood klik gaat hij naar: categorie.php?mcat=3&klcat=8
(8 staat in mijn geval voor Rood)
Werkt prima!
Wat wil ik nu:
Zoals gezegd staan achter mijn links getallen die aangeven hoeveel voertuigen erin die categorie staan. Ik wil graag dat zodra ik een bepaald MERK aanklik (bijvoorbeeld Mercedes), dat hij dan bij de KLEUR de getallen aanpast hoeveel Rode, Blauwe en Groene mercedessen zijn. Snap je?
Iemand een idee hoe ik dat kan doen?
in een array zetten hoeveel er zijn en als het steeds kan veranderen in een database
Ja maar kan je me daarmee dan helpen?
hm, het zelfde idee, je zoekt in je database naar een merk, en een kleur. dan doe je hier een count op, en weet je het aantal records. dus aantal auto's.