Print af tags i tutorials oversigt

Tags:    php mysql

<< < 12 > >>
Kære udviklere,

Dette spørgsmål skulle gerne ikke være det sværeste. Jeg sidder og koder en tutorial-sektion på min personlige blog, hvor jeg er gået lidt i stå. Jeg vil gerne have nogle "tags" i min oversigt - ligesom "TAGS" her på udvikleren. Men problemet ligger i at hver tutorial/artikel skal kunne have flere tags tildelt. Derfor har jeg blot oprettet en række i min tabel som hedder tutorialsTags. Deri kan der eksempelvis stå:

Fold kodeboks ind/udKode 


Og i overstående eksempel vil jeg som eksempel i oversigten have skrevet sådan her ud:

Fold kodeboks ind/udKode 


Jeg kan også sagtens få det adskilt. Men problemet er at den udskriver flere af de samme tags, hvis de er oprettet mere end én gang.

Fold kodeboks ind/udPHP kode 


- sådan har jeg prøvet at gøre. Og dette resultat får jeg:

Fold kodeboks ind/udKode 


Hvor jeg gerne vil have det sådan her ud:
Fold kodeboks ind/udKode 


Nogle der kan forklare mig hvordan jeg kan løse dette problem? Eller ihvertfald give mig et hint?

Med mange venlige hilsner,
Daniele Buttigli



11 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 11 karma
Sorter efter stemmer Sorter efter dato
Okay, kan godt se hvad dit problem er.
Jeg er ikke helt med på hvorfor du har opstillet din tutorialTags tabel som du har. Den måde jeg ville gøre det, var at jeg ville lave en Tags tabel, som indeholdt ID og titel på dit tag.

Dernæst har du en reference tabel som kunne hedde tagForTutorial, som indeholder ID fra din tutorial og ID fra dit tag. Derved er det let at hente ud hvilke tags der hører til en tutorial.

EDIT:

Du kunne (med den opstilling du har) hente dine tags ud via. mysql, lægge dem i et array, så hvert tag har sit eget felt, og køre array_unique($array). Så har du dine tags hvor der ikke er dubletter



Indlæg senest redigeret d. 14.05.2012 11:12 af Bruger #8782
Ændr GROUP BY til tutorialsTags



Jeg har ændret
Fold kodeboks ind/udPHP kode 

til
Fold kodeboks ind/udPHP kode 


Det hjalp desværre ikke /:



Prøv med select distinct.... i stedet for group by.



Du mener en relation imellem flere tabeller?
Det er også normalt sådan jeg gør det, men kunne ikke helt finde ud af hvordan jeg skulle lave tabellerne smartest. Men jeg tænker at du mener således:

Fold kodeboks ind/udKode 


Og så at jeg henter det ud ved mine tutorials-oversigt?


@Brian - det har jeg prøvet, men jeg forstår godt hvorfor det ikke virker. Jeg har lavet det hele i en "string", kun med komma imellem. Derfor vil det være mere besværligt. Var bare ikke 100 på hvad der var smartest.



Indlæg senest redigeret d. 14.05.2012 11:17 af Bruger #16025
Buttigli > Ja lige præcis..



@Brian - det har jeg prøvet, men jeg forstår godt hvorfor det ikke virker. Jeg har lavet det hele i en "string", kun med komma imellem. Derfor vil det være mere besværligt. Var bare ikke 100 på hvad der var smartest.


Ok, det er selvfølgelig rigtigt. Jeg vil også foreslå at du laver et re-design af dine tabeller så de bliver oprettet som Jens foreslår.



Nu har jeg oprettet tabellerne som overstående eksempel/forslag. Jeg har indskrevet det således i mit sql-kald:

Fold kodeboks ind/udSQL kode 


Og det fungerer - tak for hjælpen! :D



Som forslået før så ville jeg nok lave databasen lidt om.

Men hvis du har brug for et grimt lille fix indtil da kan du lave noget i stil med (så din side virker, til du får din db lavet om)
Fold kodeboks ind/udPHP kode 




Jeg lavede tabellerne som jeg mente du havde forslået :)

Fold kodeboks ind/udKode 




<< < 12 > >>
t