07. januar 2003 - 18:21Der er
21 kommentarer og 1 løsning
Udskille data for celle!
Jeg har en celle i en tabel der hedder brugere, hvor rækken hedder basketbold.
I denne celle findes f.eks. disse data 3;67;11;32;8 Dette henviser til de brugere som spiller basketbold. I dette tilfælde 5 brugere! En bruger kan sagtens findes i andre række såsom fodbold og håndbold.
Nu vil jeg gerne lave en funktion som gør at når en bruger er logget ind på siden så kan han få en oversigt over de sportgrene han er tilmeldt og desuden en liste over de brugere som er tilmeldt samme sportsgrene som ham!
Det må være noget med at kunne adskille strengen ad, altså 3;67;11;32;8, men hvordan løser jeg problemet?
Denne tabel indeholder så oplysninger om i hvilke kategorier (hvilke sportsgrene) de enkelte brugere deltager. En bruger kan godt deltage i flere sportsgrene.
Hvor id er et AUTO_INCREMENT felt. bruger_id er brugerens id (3, 67 osv.), og kategori_id er id'et for de forskellige sportstyper (1 = basketball, 2 = volly osv.).
Du bør omdesigne dit database til at implementere ovenstående. Ikke at det du efterlyser ikke kan lade sig gøre, men det er bare ikke måden at gøre det på, og er alt for besværligt (og langt fra optimalt).
Når du har gjort ovenstående vil du ikke have problemer med at implementere den funktion du efterlyser, og hvis du har, så spørg du bare igen.
Vil det sige at jeg skal have 3 tabeller. En med alle sportsgrenene, en anden med alle brugerne og så en sidste hvor alle brugerne findes med deres sportsgrene?
Problemet er jo at én bruger kan være tilmeldt FLERE sportsgrene. For ellers ville jeg bare have en celle i tabellen for brugere der hed sportsgren. Men vedkommende skal kunne tilmelde sig flere sportsgrene af gangen.
Vil det så igen sige at i tabellen med brugerne og deres sportsgrene, der kan samme brugere forekomme flere gange, samt samme sportsgren også kan forekomme flere gange?
Synes godt om
Slettet bruger
07. januar 2003 - 18:46#7
Det er netop meningen med den 3 tabel (spiller_kategori) eller hvad du kalder den. Her kan en bruger jo godt optræde flere gange tilmeldt forskellige sportsgrene.
Fint når du har de 3 tabeller på plads, så paste her dit samlede nye database design (tabel navne, kolonne navne osv.), så kan jeg vise dig hvordan du laver relevante udtræk herfra.
# navne på sportsgrene som brugeren med $id deltager i
$result = mysql_query("SELECT s.navn FROM sportsgrene AS s, link AS l WHERE s.id = l.sport_id AND l.bruger_id = '$id'") or die(mysql_error());
# som ovenstående men uskriver også brugerens navn
$result = mysql_query("SELECT s.navn, b.navn FROM sportsgrene AS s, link AS l, brugere AS b WHERE s.id = l.sport_id AND l.bruger_id = b.id AND b.id = '$id'") or die(mysql_error());
Hva' så hvis jeg vil have alle de mennesker frem som f.eks. deltager i fodbold med id 7?
Synes godt om
Slettet bruger
07. januar 2003 - 19:18#17
# navne på alle brugere med sportsgenre id = $sportsgenre_id
$result = mysql_query("SELECT b.navn FROM sportsgrene AS s, link AS l, brugere AS b WHERE s.id = l.sport_id AND l.bruger_id = b.id AND s.id = '$sportsgenre_id'") or die(mysql_error());
Synes godt om
Slettet bruger
07. januar 2003 - 19:20#18
Hvis du ikke er vant til at anvende flere tabeller samtidigt (at JOINE tabeller) så er:
Jeg kan godt få funktionen med # navne på sportsgrene som brugeren med $id deltager i til at virke, men funktionen # navne på alle brugere med sportsgenre id = $sportsgenre_id virker ikke! Hvis du gider kigge på den igen, så er pointene dine og jeg takker rigtig mange gange :-)
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.