Categorie, subcategorie en omschrijving

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Marije

Marije

08/08/2006 10:59:00
Quote Anchor link
Daar ben ik weer :)

Ik heb drie grafische kolommen.

De eerste wordt de hoofdcategorie, de tweede de subcategorie en de derde de omschrijving van die subcategorie. Bijvorbeeld Hoofdcat. Eten, subcategorie macaroni en de omschrijving vertelt me wat bijvoorbeeld de ingredienten zijn.

Nu wil ik met behulp van PHP/MySQL alle data dynamisch maken en uitlezen.
Wat ik NIET weet is hoe ik deze informatie netjes gecategoriseerd kan weergeven in php waarbij het 'eten' linkje clickable is... vervolgens het 'macaroni' linkje verschijnt en ook weer clickable is... waardoor er daarnaast weer de omschrijving verschijnt.

Snapt iemand wat ik bedoel en zo ja, heeft iemand een script dat me op weg kan helpen?

groetjes,
Marije

ps. ik heb al wat geprobeerd en mij tabel in de DB ziet er nu als volgt uit:

ID, categorie, subcategorie, omschrijvig
 
PHP hulp

PHP hulp

08/05/2024 15:50:08
 
Jan Koehoorn

Jan Koehoorn

08/08/2006 11:17:00
Quote Anchor link
Hoi Marije,

eerst even de indeling:

categorie
--------------
id
naam

subcategorie
---------------
id
naam
categorie_id

product
-------------
id
naam
omschrijving
subcategorie_id

Uitleg:
Een subcategorie zit ALTIJD in een hoofdcategorie, vandaar dat je een veld categorie_id moet hebben in je tabel subcategorie.

Een product zit ALTIJD in een subcategorie, vandaar dat je een veld subcategorie_id moet hebben in je tabel product.

Als je het zo opzet heb je volgens mij een redelijk datamodel.

Wat wil je precies zien als je op een link klikt? Bij een hoofdcategorie alle subcategorieën? En bij een subcategorie alle producten?
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Arjan Kapteijn

Arjan Kapteijn

08/08/2006 11:33:00
Quote Anchor link
Wat je vervolgens krijgt in deze volgorde:

SELECT id, naam FROM categorie;

Hierdoor krijg je een lijst met alle categorie items. Als je daar op klikt krijg je:

SELECT id, naam FROM subcategorie WHERE categorie_id = $id;

Dan krijg je een lijst met alle subcategorieën in die categorie.

Als je daar op klikt wil je een om schrijving, dat kan ;).

SELECT naam, omschrijving FROM product WHERE subcategorie_id = $id;
 
Marije

Marije

08/08/2006 12:33:00
Quote Anchor link
Jan:
Hoi Marije,

Wat wil je precies zien als je op een link klikt? Bij een hoofdcategorie alle subcategorieën? En bij een subcategorie alle producten?



precies... dat is wat ik zoek... ik wil door kunnen klikken naar bijvoorbeeld andijvieschotel (hehe)
 
Jan Koehoorn

Jan Koehoorn

08/08/2006 12:43:00
Quote Anchor link
Kijk eens naar de vorige post van Arjan. Daar staan de queries al in. Als je nu zorgt dat je hyperlinks goed geconstureerd worden dan moet het lukken.

Een link van een subcategorie hoort er bijvoorbeeld zo uit te zien:

<a href=?cat=1&subcat=2>schotels</a>

Een link van een product hoort er bijvoorbeeld zo uit te zien:

<a href=?cat=1&subcat=2&product=3>andijvieschotel (hehe)</a>
 
Marije

Marije

08/08/2006 13:17:00
Quote Anchor link
hmm misschien gaat dit mijn petje wel te boven... je moet dus ook een id hebben van je categorie BINNEN je subcategorie? en moet ik die dan zelf een waarde meegeven?

brrr, het zal wel lastiger lijken dan het is :)
 
Arjan Kapteijn

Arjan Kapteijn

08/08/2006 15:53:00
Quote Anchor link
Ik heb vanavond niks te doen en zal wel wat maken voor je :).
 
Manaus

Manaus

08/08/2006 16:14:00
Quote Anchor link
@ arjan: zou ik dat scriptje dan ook mogen?
 
Arjan Kapteijn

Arjan Kapteijn

08/08/2006 16:45:00
Quote Anchor link
één ding is mij nog niet duidelijk:

Je hebt het over subcategorieën, maar als ik het voorbeeld lees komt dat er niet in voor:

Je hebt een categorie, bijvoorbeeld eten of drinken. Vervolgens heeft iedere categorie een aantal producten. En die producten hebben een omschrijving.

Daar komt geen subcategorie in voor en dus hebben we voldoende aan 2 tabellen. Is dat correct of moet er toch een subcategorie tussen?
 
Marije

Marije

08/08/2006 17:01:00
Quote Anchor link
oei hehe het kan zijn dat ik het onduidelijk uitleg.

Categorieen:


Voedsel
Sport
Onderwijs
Cultuur
etc
etc


Subcategorie : (voedsel geklikt)

Macaroni
Spagettini
Shoarma
Slamix
etc
etc

Omschrijving : (macaroni geklikt)

Dit gerecht maak je klaar met kaas en weet ik veel wat nog meer leuk is om te vermelden over dit gerecht :-)



Dus ik wilde proberen twee keer kunnen klikken... eerst de categorie.. en dan de subcat.

die drie kolommen naast elkaar zodat het er overzichtelijk uitziet. Dat had ik leuk op papier geschetst, en zoals vaker krijg ik mijn idee dan niet goed uitgewerkt. grrr

In ieder geval bedankt alvast voor de reacties e.d.!
 
Arjan Kapteijn

Arjan Kapteijn

08/08/2006 17:37:00
Quote Anchor link
Als dit is wat je wilt zal ik even de code documenteren en hier neerzetten. Jou idee van naast elkaar is ook niet echt een probleem, maar dan moet je Jan even lief aankijken en vragen of hij een 3 columns fixed layout met misschien een overflow:auto; wilt maken voor je.
 
Marije

Marije

08/08/2006 18:04:00
Quote Anchor link
/me kijkt jan lief aan ;-)

bedankt arjan, ik ga er na het eten mee aan de slag!
 
Arjan Kapteijn

Arjan Kapteijn

08/08/2006 18:10:00
Quote Anchor link
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
84
85
86
87
88
89
90
91
92
93
94
95
<?php
define("BR", "\n\r");

//Database gegevens en het verbinding maken met een database.
$db_host = '';
$db_user = '';
$db_pass = '';
$db_name = '';
              
mysql_connect($db_host, $db_user, $db_pass) or die('Er kon geen verbinding met de server worden gemaakt.');
mysql_select_db($db_name) or die('Ik kon de juiste database niet vinden.');

//We kijken of er een categorie in de url te vinden is.
if(isset($_GET['categorie']))
{

    if(is_numeric($_GET['categorie']))
    {

        $categorie = mysql_real_escape_string($_GET['categorie']);
    }
}


//Hetzelfde doen we voor een productid
if(isset($_GET['productid']))
{

    if(is_numeric($_GET['productid']))
    {

        $productid = mysql_real_escape_string($_GET['productid']);
    }
}


//Huppakee, tijd om eens een lijstje van categorieën te maken.
echo '<h1>Categorieën</h1>'.BR;

$query = "SELECT id, naam FROM categorie";
$resultaat = mysql_query($query);

//Als er een resultaat is en minimaal 1 rij...
if($resultaat && mysql_num_rows($resultaat) >= 1)
{

    //Echoén we een rijtje met categorieën.
    while($rij = mysql_fetch_array($resultaat))
    {

        $id = $rij['id'];
        $naam = stripslashes(ucfirst($rij['naam']));
        
        echo '<a href="?categorie='.$id.'">'.$naam.'</a><br>'.BR;
    }
}
else{
    echo '<p>Sorry, er zijn nog geen categorieën toegevoegd!</p>'.BR;
}


//Als er een categorie in de url gevonden is word het tijd om de verschillende producten op te halen.
if(isset($categorie))
{

    echo BR.'<h2>Producten</h2>'.BR;
    
    $query = "SELECT id, naam FROM producten WHERE categorie_id = ".$categorie;
    $resultaat = mysql_query($query);

    if($resultaat && mysql_num_rows($resultaat) >= 1)
    {

        while($rij = mysql_fetch_array($resultaat))
        {

            $id = $rij['id'];    
            $naam = stripslashes(ucfirst($rij['naam']));
        
            echo '<a href="?categorie='.$categorie.'&amp;productid='.$id.'">'.$naam.'</a><br>'.BR;
        }
    }
else{
        echo '<p>Sorry, er zijn nog geen producten toegevoegd!</p>'.BR;
    }
}


//Als er een product id in de url gevonden is gaan we de beschrijving daarvan ophalen.
if(isset($productid))
{

    $query = "SELECT naam, omschrijving FROM producten WHERE id = ".$productid;
    $resultaat = mysql_query($query);

    //We verwachten 1 resultaat, niet meer en niet minder!
    if($resultaat && mysql_num_rows($resultaat) == 1)
    {

        $rij = mysql_fetch_array($resultaat);
    
        $naam = stripslashes(ucfirst($rij['naam']));
        $omschrijving = stripslashes($rij['omschrijving']);
        
        echo BR.'<div id="product"><h3>'.$naam.'</h3>'.BR;
        
        echo '<p>'.$omschrijving.'</p>'.BR;
    }
else{
        echo '<p>Sorry, er is nog geen omschrijving toegevoegd!</p>'.BR;
    }
}

?>


En de databasecode:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE categorie (
  id int(11) NOT NULL auto_increment,
  naam varchar(255) NOT NULL,
  PRIMARY KEY (id)
);

CREATE TABLE producten (
  id int(11) NOT NULL auto_increment,
  naam varchar(255) NOT NULL,
  omschrijving text NOT NULL,
  categorie_id int(11) NOT NULL,
  PRIMARY KEY (id)
);
 
Marije

Marije

08/08/2006 20:50:00
Quote Anchor link
het werkt! nog niet in drie kolommen maar dat ga ik nu proberen.. bedankt arjan!
 
Marije

Marije

09/08/2006 11:22:00
Quote Anchor link
hmm ik krijg het nog niet voor elkaar naast elkaar... ik heb overal stukken code staan haha.... misschien dat Jan me nog een klein stukje op weg wil helpen?

^^
 
Willem Jan Z

Willem Jan Z

09/08/2006 12:02:00
Quote Anchor link
Ik vond het zo zielig voor Jan dat hij elke keer weer zijn CSS kunsten moet tonen, dat ik maar een poging waagde :P

Resultaat
Zipfile

Ik heb Arjan zijn code zoveel mogelijk intact gelaten. Heb alleen wat HTML ervan veranderd, en wat elsjes voor extra meldingen toegevoegd.
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
 
Marije

Marije

09/08/2006 12:28:00
Quote Anchor link
wauw, dat is wel heel snel zeg... ook frustrerend om te zien dat sommigen van jullie er zo makkelijk iets van maken... ik ga het nu proberen in te voeren en dat laat ik het hier weten!
 
Willem Jan Z

Willem Jan Z

09/08/2006 12:33:00
Quote Anchor link
Die copyright mag je trouwens weghalen hoor :P Ik had gewoon even iets voor in de footer nodig :)
 
Marije

Marije

09/08/2006 12:51:00
Quote Anchor link
okee bedankt :)
 
Marije

Marije

09/08/2006 20:32:00
Quote Anchor link
Ok, laatste vraag.

Ik heb je CSS script gebruikt, perfect!
Nu zoek ik alleen nog een stukje code dat ervoor zorgt dat de zojuist geselecteerde categorie en product ge-highlite worden zodat het duidelijk is waar je in het systeem zit.
Iemand een idee?
 
Jan Koehoorn

Jan Koehoorn

09/08/2006 21:14:00
Quote Anchor link
Wat heb je zelf zoal geprobeerd?
 

Pagina: 1 2 volgende »



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.