Aantal items in menu

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Matthew

matthew

06/07/2009 19:57:00
Quote Anchor link
Hallo,

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)
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
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>';
}

?>


Code voor het "Kleur" menu:
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
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>';
}

?>



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?
 
PHP hulp

PHP hulp

20/05/2024 19:29:03
 
Yearupie Achternaamloos

Yearupie Achternaamloos

06/07/2009 20:24:00
Quote Anchor link
in een array zetten hoeveel er zijn en als het steeds kan veranderen in een database
 
Matthew

matthew

08/07/2009 13:07:00
Quote Anchor link
Ja maar kan je me daarmee dan helpen?
 
Wesley Overdijk

wesley Overdijk

08/07/2009 13:09:00
Quote Anchor link
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.
 



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.