Avatar billede madsens90 Praktikant
04. februar 2008 - 13:19 Der er 3 kommentarer og
1 løsning

Hjælp til brugen af 'IF NOT IN' i min mysql connection?

Jeg er ved at lave noget til min hjemmeside hvor at den skal finde i min ene tabel i databasen alle dem hvor mig ='1'.

Når den har fundet dem, så skal den tjekke i en anden tabel om der findes en række som indeholder samme informationer som i den forrige tabel.

Hvis dette ikke er tilfældet, skal den vise en række fra den første tabel. Jeg har fra et tidligere spørgsmål fundet frem til brugen af 'IF NOT IN', men den kommer med en fejl, når jeg bruger den.

Min connection ser lige nu sådan ud:

$sql = "SELECT * FROM galleri WHERE mig = '1' AND sti NOT IN (SELECT * FROM hotornot WHERE hotornot.navn = '$navn' AND hotornot.billedenavn = galleri.sti AND hotornot.navnpaabruger = galleri.bruger) ORDER BY RAND() LIMIT 1";

Den finder først alle dem med mig = '1' i den første tabel, og så tager den 'stien' fra dem den har fundet, og tjekker om den findes i tabellen 'hotornot', hvor at navn = ens brugernavn, og om billedenavnet er = med 'stien' fra den tidligere tabel, og om personen der har oprettet rækken i den første tabel, også findes i den næste tabel.

Håber meget nogen kan se fejlen i min connection.!
Og takker mange gange på forhånd!
Avatar billede straszek Praktikant
04. februar 2008 - 13:33 #1
hvilken fejl får du?
Avatar billede nielle Nybegynder
04. februar 2008 - 13:48 #2
Din:

SELECT * FROM ..

i den sub-query, skal nok rettes til specifikt at udtrække det felt som 'sti' skal sammenlignes imod.

SELECT ditFelt AS sti FROM ...

eller bare:

SELECT sti FROM ...

hvis felter allerede hedder 'sti'.
Avatar billede madsens90 Praktikant
04. februar 2008 - 14:29 #3
Tusinde millioner gange tak nielle. :)

Det kunne da ikke være mere simpelt. :P

Kom med et svar og få point. :)

Sådan ser resultatet i øvrigt ud:

$sql = "SELECT * FROM galleri WHERE mig = '1' AND sti NOT IN (SELECT billedenavn AS sti FROM hotornot WHERE hotornot.navn = '$navn' AND hotornot.billedenavn = galleri.sti AND hotornot.navnpaabruger = galleri.bruger) ORDER BY RAND() LIMIT 1";

Straszek: Den sagde også bare der var en fejl i den lange linie der, men ikke hvor. ;)
Avatar billede nielle Nybegynder
04. februar 2008 - 14:53 #4
Svar :^)
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