Hjælp til kategori i et galleri

Tags:    php

Jeg er ved at opbygge et galleri til min hjemmeside, hvor det er meningen, at billederne skal opdeles i en kategori. Problemet er at et billede oftest kan høre inde under flere kategorier og så havde jeg tænkt mig at lave et felt til hver kategori, hvor der så stod yes og no, men det kan ikke rigtig bruges, da det skal være meningen, at man skal kunne oprette nye kategorier, nu er spørgsmålet så.

Kan man lave et felt hvor alle kategorierne står i delt med komma. eks maleri, landskab - og så bruge select * from billeder where kategori LIKE="maleri"?

Hvis denne metode skal bruges hvordan skal jeg så lave et tekstfelt, hvor man klikker på de kategorier der skal bruges og så indsætter den kategorierne i tekstfeltet?

Håber en vil hjælpe med tekstfeltet hvor det skal deles op i kommaer osv.

Har i evt. en nemmere ide?

Håber en vil være så flink, at hjælpe mig med mit problem :)



5 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hjælp-til-selvhjælp-forslag:
Du bør lave to tabeller i mysql. Én til kategorier og én til alle billederne. Billedtabellen skal indeholde en kolonne der kan hedde "kategori".
Derefter laver du så man kan oprette kategorier. Når man så skal uploade et billede, kan du lave checkbokse til valg af gallerier. Fra de bokse/kategorier der er "checked" tager du kategori-id'erne og samler dem i en streng eksempelvis separerede af kommaer. Du har så en kategorikolonne til hvert billede, hvor der står "kategori1,kategori2,kategori3".
Når du så skal hente billederne til en given kategori fra, bruger du "IN"-funktionen i sql. Læs om den på http://www.w3schools.com/sql/sql_in.asp .
Hvis du får brug for at ændre/slette i listerne, kan du bruge arrays og funktionerne array_push() og explode(). Læs om dem på php.net..
Håber du kan bruge det til noget.



Indlæg senest redigeret d. 06.10.2007 17:29 af Bruger #10105
Hej Morten,

Man kunne oprette et varchar felt, hvor du så søger om ordet står i feltet.

Eksempel, med 3 billeder:

Fold kodeboks ind/udKode 


SELECT * FROM Kategorier WHERE Kategorier LIKE '%Maleri%' << Køre denne query for fx at finde alle billederne med kategorien maleri

Og så bruge en while-lukke til at vise resultatet, som i dette tilfælde vil være billederne med billed_id 1 og 3



bvadr...

Brug da et mange-til-mange-relationssetup.
Fold kodeboks ind/udKode 






Indlæg senest redigeret d. 06.10.2007 17:56 af Bruger #10216
Ja, det var det jeg havde tænkt mig.

Hvis man laver en checkliste i formen, som ser sådan her ud Eks:

Maleri X
Landsskab X
Kamera
Udvikleren

Dem der er kryds ud fra er der sat kryds i, hvordan laver jeg så sådan at jeg henter dem ud i en string, som så nu udfra det eksempel skal se sådan her ud:

$kategori = Maleri, Landsskab




Hvis man bruger mit eksempel skal du køre denne mysql query:
Fold kodeboks ind/udKode 

Så derefter køre while-lykken



t