[MySQL][PHP] Diversen categorien halen uit table

Pagina: 1
Acties:

  • capedro
  • Registratie: Oktober 2000
  • Laatst online: 20-05 09:15
Ben momenteel bezig met een website (voor de bekenden... nog steeds) waarin foto's staan gerubriceerd in categorien.

Deze categorien worden weggeschreven in de volgende vorm:
code:
1
vervoer:auto:mercedes

Met andere woorden
vervoer is hoofdcategorie
auto is subgroep van vervoer
en (heel logisch :+ )
mercedes van auto :o

Nu het volgende... ik wil dmv een query alle hoofdgroepen gesorteerd op alfabet weergeven.

Hoe bak ik dat voor elkaar... heb al in boeken zitten neuzen... en gegoogled... mysql site bezocht et cetera.

Een hoofdgroep komt meerdere keren voor, maar hoeft slechts 1 keer weergegeven te worden, onder bash doe ik meestal zoiets als:
code:
1
 cat access_log | awk -F: '{ print $1 }' | sort | uniq

Maar aangezien ik een MySQL heb draaien vind ik het een beetje zonde om dat dmv bash te doen :+

Schiet u maar :7

My weblog


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Schrijf het es weg als:
tabel category: [category_id, catnaam]
tabel subcategory: [subcat_id, subcatnaam]

Ofzo, dan kan je met leuke join queries een hoop doen.
Wat je nu hebt vindt ik een beetje onduidelijk over komen en volgens mij ben je ook niet echt de database op zijn maximale kunnen aan het gebruiken zo (zie normalisatie)

En verder is het trouwens flinke basic php+mysql, dat staat in elke tutorial wel uitgelegd?

  • capedro
  • Registratie: Oktober 2000
  • Laatst online: 20-05 09:15
Op woensdag 10 juli 2002 21:29 schreef ACM het volgende:
Schrijf het es weg als:
tabel category: [category_id, catnaam]
tabel subcategory: [subcat_id, subcatnaam]

Ofzo, dan kan je met leuke join queries een hoop doen.
Wat je nu hebt vindt ik een beetje onduidelijk over komen en volgens mij ben je ook niet echt de database op zijn maximale kunnen aan het gebruiken zo (zie normalisatie)
Ik weet dat ie niet optimaal werkt op deze manier... ik heb ook al een andere idee... maar de opdrachtgever (mijn schoonpa) wil zsm on-line... en verbetering komen dan daarna wel!

Ik heb het volgende idee in mijn hoofd om categorie/subcategorie te werken:
code:
1
2
3
4
5
Tabel Categorie
cat_id       Unieke id van categorie
Omschrijving     Omschrijving van categorie
Child_from   Cat_id waar het een subcat is, 0 is de root
Alias_from   Cat_id waar het een alias van is

Alias is een feature uit cumulus waar de data in staat!
Mijn schoonpa werkt met cumulus en de export data daarvan moet ik vervolgens verwerken in de database.

Het gaat mij momenteel om een "snelle" oplossing... en als die voorlopig niet voor handen is dmv een query ga ik toch ff bash-en en dmv een crontab om de zoveel tijd refreshen ;(

My weblog


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 02-09 09:31

Crazy D

I think we should take a look.

Ik zit zelf een beetje te denken (heb nog geen zin gehad om er echt mee aan de slag te gaan ;)) over een foto-gallerietje met diverse niveau's diep. So far heb ik het idee om 1 tabel te maken, categorieën, en 1 tabel, subcats. In de categorieën tabel komen gewoon alle categorieën, in de subcats tabel alleen id's: hoofdcatid en subcatid.
Dat zou bv met jouw voorbeeld in houden:
categorieën:
1 - Vervoer
2 - Auto
3 - Mercedes

subcats zou dan worden
1 - 2
2 - 3

1 - 2 om aan te geven dat Auto bij Vervoer hoort (en daar kunnen er uiteraard nog meer bij komen...), en 2-3 om aan te geven dat Mercedes onder de Auto's valt.
Hoe de queries er uit gaan zien weet ik niet want veel meer heb ik er nog niet over nagedacht, maar alle categorie-ID's die in de subcats tabel niet in subcatid staan, zijn dus hoofdcategorieën.
Voordeel (iig voor mezelf) is dat 1 categorie dus onder meerdere hoofdcategorieën kan vallen.
Misschien is het een idee... :)

Exact expert nodig?


  • whoami
  • Registratie: December 2000
  • Laatst online: 20:22
Op woensdag 10 juli 2002 21:35 schreef capedro het volgende:

[..]

Ik weet dat ie niet optimaal werkt op deze manier... ik heb ook al een andere idee... maar de opdrachtgever (mijn schoonpa) wil zsm on-line... en verbetering komen dan daarna wel!
Zo snel mogelijk.... Als je datamodel niet goed is, dan ga je hem niet snel online krijgen.
Jouw datamodel veranderen is misschien nu veel werk, maar het zal je een hele hoop werk en problemen besparen.
Het gaat mij momenteel om een "snelle" oplossing... en als die voorlopig niet voor handen is dmv een query ga ik toch ff bash-en en dmv een crontab om de zoveel tijd refreshen ;(
*Zucht* snel != goed.

https://fgheysels.github.io/


Verwijderd

Bedoel je soms misschien het volgende?
Dit groepeerd column_unique, en laat dubbele dan niet zien.
code:
1
SELECT DISTINCT( column_unique ), column2 FROM tabel

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 12-02 15:52
Nee nee nee nee nee! :D Dat is in dit geval de foute manier om categorieën op te slaan. Wat je wil is subcategorieën tot in het oneindige. Om per categorie aan te geven welke de parent is, is dan niet meer handig, omdat je niet in 1 query de complete boomstructuur weer te geven.

En daar heb je het sleutelwoord: boomstructuur :)
http://gathering.tweakers.net/forum/list_message/11688233#11688233

Dit heet ook wel het "Nested-set model" of het "Celco model".. Daar zijn 2 best handige artikelen over te vinden. Op die manier heb ik een categorie-systeem gemaakt dat redelijk makkelijk te onderhouden is (via de admin-login), en deze boomstructuur wordt telkens in 1 query opgehaald en weergegeven. Voorbeeldje (no spam intended) waar ik dat categoriesysteem geimplementeerd heb. :D

  • capedro
  • Registratie: Oktober 2000
  • Laatst online: 20-05 09:15
Op donderdag 11 juli 2002 08:46 schreef whoami het volgende:

[..]

Zo snel mogelijk.... Als je datamodel niet goed is, dan ga je hem niet snel online krijgen.
Jouw datamodel veranderen is misschien nu veel werk, maar het zal je een hele hoop werk en problemen besparen.
[..]

*Zucht* snel != goed.
* capedro weet het snel != goed, maar hij begint er telkens over...
Op donderdag 11 juli 2002 12:04 schreef elviver het volgende:
Nee nee nee nee nee! :D Dat is in dit geval de foute manier om categorieën op te slaan. Wat je wil is subcategorieën tot in het oneindige. Om per categorie aan te geven welke de parent is, is dan niet meer handig, omdat je niet in 1 query de complete boomstructuur weer te geven.

En daar heb je het sleutelwoord: boomstructuur :)
http://gathering.tweakers.net/forum/list_message/11688233#11688233

Dit heet ook wel het "Nested-set model" of het "Celco model".. Daar zijn 2 best handige artikelen over te vinden. Op die manier heb ik een categorie-systeem gemaakt dat redelijk makkelijk te onderhouden is (via de admin-login), en deze boomstructuur wordt telkens in 1 query opgehaald en weergegeven. Voorbeeldje (no spam intended) waar ik dat categoriesysteem geimplementeerd heb. :D
Aha... zoiets dacht ik al... had alleen geen idee hoe dat moest... 'k ga eens aan de slag :+

My weblog

Pagina: 1