Beste lezer,

Graag zou ik een eerder gedefinineerde verzameling waarden gebruiken in een mysql select query.

Deze notatie blijkt niet te werken:
$getallen = array(30,40,50,60);
$selectie = "SELECT * FROM tabel WHERE getal = $getallen";

Ik wil dus alle records waar getal 30,40,50 of 60 en voor arrays van wisselende omvang een eenvoudige notatie...


Wie weet hoe het wel moet?

Groeten en dank,

Maurice.
$selectie = "SELECT * FROM tabel WHERE getal = 30 OR getal = 40 OR getal = 50 OR getal = 60";
$selectie = "SELECT * FROM tabel WHERE getal IN(30,40,50,60)

Moet ook prima kunnen

OF

$selectie = "SELECT * FROM tabel WHERE getal LIKE %0
Dank voor uw reactie, maar de getallen in $getallen dienen slechts even als voorbeeld:

Ik wil een eerder gegenereerde reeks getallen, de array $getallen, deze lijst is steeds verschillend en bevat soms tientallen verschillende getallen, op een makkelijke manier in een select plaatsen. Ik had gehoopt dat
$selectie = "SELECT * FROM tabel WHERE getal = $getallen";
zou werken maar dat is niet zo... ik ben op zoek naar een notatiewijze die werkt voor een array die steeds weer anders is.
Kan het dan niet zo:

$selectie = "SELECT * FROM tabel WHERE getal IN(".$array.")";
@Robert: Ik denk eigenlijk niet dat jouw oplossing werkt. Je kan het wel zo doen:

$selectie = "SELECT * FROM tabel WHERE getal IN(" . implode(",", $array) . ")";
Allen geweldig bedankt voor het meedenken!
De oplossing van SanThe werkt helemaal goed!

Groeten van Maurice.
Je hebt helemaal gelijk SanThe... bij mij zou er staan:
SELECT * FROM tabel WHERE getal IN(array);

Jouw oplossing is helemaal top ;)

Reageren