04. april 2005 - 11:00Der er
20 kommentarer og 2 løsninger
Udtræk af data fra 3 tabeller
Jeg har behov for at lave et udtræk af data fra én tabel, baseret på kriterier fra 2 andre tabeller.
Jeg har 3 tabeller... b91_kampinf - indeholder oplysninger om kampe (spillested, dato og den slags)
b91_kampe - indeholder kampnr og spillernr, der viser hvilke kampe en spiller har været med i.
b91_medlemmer - indeholder spilleroplysninger (navn, adr og den slags).
Feltet kampnr. binde de 3 tabeller sammen.
Jeg vil gerne lave et udtræk af spillere der opfylder visse kriterier: Hent alle de spillere der har spillet en kamp indefor 1000000000 og 1999999999 (begge er unix-timestamps).
Altså noget lignende: $sql = ("SELECT spillernr,navn FROM b91_medlemmer,b91_kampe, b91_kampinf WHERE b91_kampe.kampnr=b91_kampinf.kampnr AND b91_medlemmer.spillernr=b91_kampe.spillernr AND $start<b91_kampinf.tidspunkt AND $slut>b91_kampinf.tidspunkt ORDER BY navn ASC");
Er det helt hen i vejret det jeg forsøger? Er jeg i gang med at lægge serveren død?
Manuelle og semi-automatiske strategier for identitetsstyring virker - lige indtil nogen beder om dokumentation. For at undgå denne fare har DKTV taget kontrol over sin identitets- og adgangsstrategi.
Nej, du skal i din SQL navngive kolonnen unikt - som arne_v siger - så henter du den ud som $row_medlemmer['spnr'];
Synes godt om
Slettet bruger
04. april 2005 - 11:12#8
arne_v...> Nu har jeg insat b91_medlemmer.spillernr i min kode, så den ser sålede ud:
$sql = ("SELECT b91_medlemmer.spillernr,b91_medlemmer.navn FROM b91_medlemmer,b91_kampe, b91_kampinf WHERE b91_kampe.kampnr=b91_kampinf.kampnr AND b91_medlemmer.spillernr=b91_kampe.spillernr AND $start<b91_kampinf.tidspunkt AND $slut>b91_kampinf.tidspunkt ORDER BY navn ASC");
$sql = ("SELECT b91_medlemmer.spillernr,b91_medlemmer.navn FROM b91_medlemmer,b91_kampe, b91_kampinf WHERE b91_kampe.kampnr=b91_kampinf.kampnr AND b91_medlemmer.spillernr=b91_kampe.spillernr AND $start<b91_kampinf.tidspunkt AND $slut>b91_kampinf.tidspunkt ORDER BY navn ASC");
$query_medlemmer = mysql_query($sql) or die (mysql_error());
$sql = ("SELECT b91_medlemmer.spillernr AS spillernr,b91_medlemmer.navn AS navn FROM b91_medlemmer,b91_kampe, b91_kampinf WHERE b91_kampe.kampnr=b91_kampinf.kampnr AND b91_medlemmer.spillernr=b91_kampe.spillernr AND $start<b91_kampinf.tidspunkt AND $slut>b91_kampinf.tidspunkt ORDER BY navn ASC");
$query_medlemmer = mysql_query($sql) or die (mysql_error());
Kast bare størstedelen efter arne_v. Han er lidt bedre til det her end mig - og ikke mindst hurtigere :)
Synes godt om
Slettet bruger
04. april 2005 - 11:33#17
Er det helt hen i vejret det jeg har gang i her?
Tænker på om jeg belaster serveren voldsomt på denne her måde?
Jeg har alle disse databaser, og oprindelig var planen at de skulle nulstilles ved hver sæsonstart, men vi har besluttet at lave et arkiv, så vi kan se tidligere sæsoner.
Da der er 10 tabeller til en sæson, har vi valgt at bruge kampdatoen som omdrejningspunkt for hvad der skal vises for en sæson, og så ellers bare fylde i hver tabel. Det vil blive helt umuligt at styre, hvis jeg lavede nye tabeller til hver sæson.
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.