05. februar 2015 - 19:26Der 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?
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.
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.
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.