2015-04-18 1 views
0

J'essaie d'écrire une requête sans utiliser de boucle pour obtenir des valeurs de la base de données. J'ai un tableau $ guest_list_guest_ids qui stocke tous les identifiants que je voudrais tirer.Extraction de la requête MYSQL de la boucle

Je ne sais pas exactement comment je pourrais accomplir cela sans boucle, où je changerais la requête chaque fois en fonction de l'ID que j'analyse.

$query = 'SELECT * FROM guest_list_guests' . implode(',', $guest_list_guest_ids); 
    echo $query; 

Toute aide ou contribution est grandement appréciée.

+3

'SELECT * FROM guest_list_guests où id en (1,2,3)' –

Répondre

0

Cela suppose que vous utilisez PDO, mais devrait être adaptable à MySQLi:

// the frame of the query we're going to prepare 
$query_frame = 'SELECT * FROM guest_list_guests WHERE id IN (%s);' 

// generate a placeholder string, one for each element in the array of ids 
$placeholders = implode(',', array_fill(0, count($guest_list_guest_ids), '?')); 

// make the query string, eg: SELECT * FROM guest_list_guests WHERE id IN (?,?,?,?,?); 
$query = sprintf($query_frame, $placeholders); 

// prepare 
$stmt = $dbh->prepare($query); 

// execute 
$stmt->execute($guest_list_guest_ids); 

// get results 
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));