Kontrold af poster i forskellige tabeller i MySQL

Tags:    php

Hej..
Hvordan kontrolere jeg om en bruger af siden er med på forskellige lister.... det er spørgsmålet.

prøver lige at forklare..

Jeg har en masse bruger i en tabel i min database. Nu skal jeg så finde ud af om de er tilmeldt en adresseliste. (som er en anden tabel) Det skal jo ikke være muligt at tilmelde sig to gang til samme liste..

kan det forståes eller skal jeg forklare det på en anden måde?



4 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
du har antageligt set en mellem tabel med bruger id og liste id som primary keys. Så burde du bare kunne bruge det jeg skrev i denne tråd eller et af de andre forslag:
http://www.udvikleren.dk/PHP/Thread.aspx/6/19031/



oprette en mellemtabel, som kan eksempelvis hedde userz_listz ( users >> lists / users to list ).

SQL:
Fold kodeboks ind/udKode 


Fordelen ved mellemtabeller er selvfølgelig at man kan have "mange til mange" setups, i stedet for "en til mange".

Ovenstående sql kan bruges til at genere en liste over dine adresselister. Du kan også tilføje en "WHERE listz.id = [id]" for at finde en enkelt liste, hvis det er det du vil.



Indlæg senest redigeret d. 18.01.2007 10:47 af Bruger #10216
det kan godt være brugerens id er flere gange i tabellen, fordi der er mulighed for at oprette flere adresselister og brugerne må være med på dem alle. Så den skal undersøge om han er tilmeldt den liste som han prøver at tilmelde sig.
Fold kodeboks ind/udKode 


Lyder måske lidt underligt..





Insert fejler automatisk med en fejl kode hvis du prøver at inserte med en allerede eksiterende key. Så hvis keyen er bruger id og liste id, så når en bruger prøver at melde sig til en liste altså oprette en row i din tabel med hans bruger id og listens id vil insert fejle med en fejl besked så er det bare at teste om den fejler med og hvis den gør om det er med den pågældende fejlbeskedsnummer som jeg nok mener er 1062. Altså er der ingen grund til først at lave en select på om row'en allerede findes.



t