Avatar billede bigtime Nybegynder
04. november 2010 - 11:32 Der er 13 kommentarer og
1 løsning

Tags i dben adskildt med ,

jeg har en database med film og til de film er der en række der hedder tags hvor der friksempel stå en, to, tre, fire,
men når jeg skriver dem ud over filmen så skriver den over billedet en, to, tre, fire, men jeg ville gerne have den til at skrev ud så jeg kunne lave hver tags til et link altså så skriver en som link uden komma og to som link uden komman osv osv
men hvordan skriver jeg det ud ?
Avatar billede majbom Novice
04. november 2010 - 12:00 #1
$tag_array = array();
$tag_array = explode(',' $din_streng_fra_db);
$length = size_of($tag_array);

for($i=0; $i<=$length; $i++){
  echo "<a href='tags.php?tag=$tag_array[$i]'>$tag_array[$i]</a>";
}


utestet...
Avatar billede bigtime Nybegynder
04. november 2010 - 12:16 #2
Parse error: syntax error, unexpected T_VARIABLE in film.php on line 127
Avatar billede majbom Novice
04. november 2010 - 12:39 #3
og linje 127 er??
Avatar billede majbom Novice
04. november 2010 - 12:40 #4
går ud fra at det er denne:

$tag_array = explode(',' $din_streng_fra_db);


som selvfølgelig skal være:

$tag_array = explode(',', $din_streng_fra_db);
Avatar billede coderdk Praktikant
04. november 2010 - 12:52 #5
I stedet for et felt med tags adskildt af , bør du have to nye tabeller:

TAG
===
tag_id
tag_name

TAG2MOVIE
=========
tag_id
movie_id

Hvor tag bare indeholder navnet, og tag2movie er en mange-til-mange relationstabel mellem tag og movie (hvor movie er din filmtabel)...
Avatar billede bigtime Nybegynder
04. november 2010 - 13:01 #6
coderdk : det ser mgi lidt besværlig ud på nuværne tidspungt men det kan være det bliver løsningen senere hen hvis siden bliver meget besøgt ho now.

splazz :
Fatal error: Call to undefined function size_of() in film.php on line 128
linje 128 : $length = size_of($tag_array);
Avatar billede coderdk Praktikant
04. november 2010 - 13:03 #7
brug count() i stedet for size_of()

Hvorfor ikke gøre det på den rigtige måde fra starten? Det bliver bare besværligt, hvis du skal transformere dine pseudotags til et andet format ;)
Avatar billede bigtime Nybegynder
04. november 2010 - 13:06 #8
coderdk vil du så lave en db der hedder tags og der skal være tabeller id filmid tags1 tags2 tags3 tags4 tags5 tags6 osv osv
eller hvordan mener du ?
Avatar billede coderdk Praktikant
04. november 2010 - 13:12 #9
Du har én database, du har sikkert en tabel der hedder "film" eller lignende. Du skal bruge to nye tabeller, "tag" og "tag2film" - tag skal bare indeholde et ID-felt (auto increment) og et varchar med navnet. "tag2film" indeholder to felter, "tag_id" som refererer ID'et fra "tag"-tabellen og "film_id" som refererer ID'et fra "film"-tabellen.

På den måde kan én film have mange tags, og ét tag kan refereres af mange film (en mange-til-mange relation).
Avatar billede danco Nybegynder
04. november 2010 - 16:08 #10
Jeg støtter op omkring coderdk's forslag her.
Der bliver noget møg i din database med kommaseparation, har du forringet muligheder for søgning og generelt er det faktisk mod de guidelines der ligger for etablering af databaser. Derudover vil du næppe kunne normalisere din database tilstrækkeligt og det giver dig væsentlig mere kode arbejde.
Derfor synes jeg du skal følge forslaget og oprette de to tabeller til formålet. Hvilket også giver dig bedre muligheder for udbygning af siden og databasen.
Avatar billede majbom Novice
04. november 2010 - 16:53 #11
ja, size_of skulle have været uden underscore :) sizeof og count er jo det samme...

når det så er sagt vil jeg helt sikkert også slå mig til coder's forslag, da det er langt mere praktisk på alle måder.
Avatar billede bigtime Nybegynder
07. december 2010 - 14:27 #12
det virkede splazz kan du komme med et svar :D
Avatar billede majbom Novice
07. december 2010 - 19:20 #13
kommer her :)
Avatar billede majbom Novice
07. december 2010 - 19:39 #14
tfp :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester