Avatar billede haolan Nybegynder
19. marts 2006 - 14:39 Der er 15 kommentarer og
1 løsning

Udskriv kun dem der ikke gentager sig

Hey eksperter..
Jeg skal lave et system der kun udskriver de brugere med det id der ikke står skrevet et andet sted.

altså jeg har to tabeller:

users:
id, user

table2:
id, userid

Det betyder at jeg skal have udskrevet de brugere fra users, vis id ikke står listet som userid i table2..

Hvordan laver man det?
Avatar billede jakobdo Ekspert
19. marts 2006 - 15:47 #1
Jeg tror du kan bruge denne sides løsning:

http://p2p.wrox.com/topic.asp?TOPIC_ID=29902
Avatar billede haolan Nybegynder
19. marts 2006 - 15:50 #2
øøh.. jeg forstår ikke helt hvordan jeg skal stille det op.. :S
Avatar billede jakobdo Ekspert
19. marts 2006 - 15:54 #3
Måske denne virker:

SELECT id from users
LEFT JOIN table2 on users.id = table2.userid
WHERE table2.userid is Null
UNION
SELECT userid from table2
LEFT JOIN users on table.userid = users.id
WHERE users.id is null
Avatar billede haolan Nybegynder
19. marts 2006 - 16:05 #4
med den du skrev får jeg følgende fejl:

Column: 'id' in field list is ambiguous
Avatar billede haolan Nybegynder
19. marts 2006 - 16:07 #5
ambiguous betyder flertydig
Avatar billede jakobdo Ekspert
19. marts 2006 - 16:07 #6
Ret evt SELECT id from users til: SELECT users.id from users eller SELECT * from users
Avatar billede haolan Nybegynder
19. marts 2006 - 16:13 #7
ok.. nu fik jeg den til at udskrive en masse tomme rækker.. men hvordan får jeg den til at kalde noget ud fra databasen og udskrive det?
Jeg har lavet en while løkke med mysql_fetch_array
men den udskriver ikke noget tekst.. kun en masse tomme rækker..
Avatar billede haolan Nybegynder
19. marts 2006 - 16:21 #8
og lige en ting til..
Den skal kun vælge de rækker fra user hvor ejer = '$ejerid' og i table2 skal den kun vælgte de rækker hvor ref = '$_GET['id']' hvor skal de indtastes henne i den query?
Avatar billede jakobdo Ekspert
19. marts 2006 - 16:23 #9
Det må du selv tænke dig frem til.
Avatar billede haolan Nybegynder
19. marts 2006 - 16:30 #10
ok.. men lige en ting så... Jeg skal udskrive userid fra table2, men problemet er at userid også eksistere i users, så den kan ikke finde ud af hvad den skal udskrive.. :S
Avatar billede jakobdo Ekspert
19. marts 2006 - 16:48 #11
så retter du også:
SELECT userid from table2 til: SELECT table2.userid from table2
Avatar billede haolan Nybegynder
19. marts 2006 - 17:11 #12
Hmm ja ok nu virker det godt nok.. Men jeg tror jeg har formuleret mit spørgsmål forkert :)

meningen er at den skal udskrive de brugere der ikke har tilmeldt sig til et givent arrangement, som står skrevet i table2. Når en bruger tilmelder sig et arrengement indsættes der en række i table2 hvor brugerens id står skrevet samt lidt andre oplysninger..

Problemet med den løsning vi har her nu er at den tager kun højde for hvis en bruger aldrig har tilmeldt sig noget fordi den tjekker jo om værdien er null. Og brugerne kan jo have tilmeldt sig et tidligere arrangement og derfor bliver de ikke skrevet på, selvom de ikke har tilmeldt sig det arrangement der skulle vises statistik på.

Men svaret på mit spørgsmål har du jo :) såå takker for det ihvertfald, og læg svar for points..
Avatar billede jakobdo Ekspert
19. marts 2006 - 17:25 #13
Svar! :o)
Avatar billede jakobdo Ekspert
19. marts 2006 - 17:38 #14
Men det med at det kun er nyeste tilmelding som skal trigge, så skal du jo tilføje en WHERE tilmeldingID = NOGET
Avatar billede jakobdo Ekspert
19. marts 2006 - 17:38 #15
Og takker for point!
Avatar billede haolan Nybegynder
19. marts 2006 - 17:45 #16
Har jeg også forsøgt.. men det hjælper ikke.. den udskriver stadig kun dem der aldrig har meldt før..
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