Avatar billede riefart Seniormester
05. februar 2015 - 19:26 Der er 4 kommentarer og
1 løsning

Hvordan kontrolleres mod et array

I min sql database har jeg en tabel: "tilmeldte" hvor jeg gemmer tilmeldte til forskellige arrangementer med bl.a. unikt medlemsnr.
I en anden tabel "medlemmer" har jeg alle registrerede medlemmer (med samme unikke medlemsnr).
Jeg ønsker at lave en sql-søgning hvor jeg blandt alle medlemmerne kun får dem skrevet ud, som ikke er tilmeldt et bestemt arrangement.
Jeg lægger alle tilmeldte til det pågældende arrangement i et array med følgende script:
$tilmeldte=array();
if($stmt=$mysqli->prepare('SELECT `medlemsnr` FROM `tilmeldte` WHERE `arr`=?'))
{
    $stmt->bind_param('i', $arrangement);
    $stmt->execute();
    $stmt->bind_result($tilmeldt_arrangement);
    while($stmt->fetch())
    { 
    $tilmeldte[]=$tilmeldt_arrangement;
    }
    $stmt->close();
}
Hvordan kontrollerer jeg resultaterne af min søgning mod dette array?
Avatar billede jakobdo Ekspert
05. februar 2015 - 20:54 #1
Kunne du ikke noget ala:

SELECT medlemsnr FROM medlemmer WHERE medlemsnr NOT IN (SELECT medlemsnr FROM tilmeldte WHERE arr = __ARRANGEMENT__)
06. februar 2015 - 07:25 #2
Helt enig med #1.  Der er en arbejdsdeling mellem database og applikation, og vi ser her på forummet en del spørgsmål, hvor spørgeren forsøger at gøre noget i en databasesøgning der kan gøres nemmere i applikationen, men her er det omvendt: en sådan søgning kan nemmest gøres i databasen.  riefart, jeg har noteret mig fra et andet nyligt spørgsmål, at du er i gang med at lære mysql.  Måske har du ikke mødt sub selects før.  Med "SELECT `medlemsnr` FROM `tilmeldte` WHERE `arr`=?" søger du et sæt data.  Resultatet ville du gemme i en array og anvende til videre søgning.  Men sql tillader, at du placerer denne søgning indeni en anden søgning som vist i #1.
Avatar billede riefart Seniormester
06. februar 2015 - 19:51 #3
jakobdo:
Det var præcis hvad jeg skulle bruge. Tak for hjælpen og læg et svar.

Christian_Belgien: tak for kommentaren. Har kun lige fået øjnene op for sammenkædede forespørgseler, men kan godt se, at det kommer jeg til at bruge meget fremover.
Avatar billede jakobdo Ekspert
06. februar 2015 - 20:11 #4
Svar!
Avatar billede jakobdo Ekspert
06. februar 2015 - 22:24 #5
takker for point.
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