2 votes

grande requête sql - meilleure pratique

Mon script php script sauvegarde la liste des userid dans une variable SESSION ARRAY dans le but de créer un lien html sur cette page.

quand on clique sur ce lien html, un autre PHP script devrait afficher toutes les informations de l'utilisateur pour cet userid dans un tableau html.

J'ai besoin de connaître les meilleures pratiques pour créer SELECT la requête pour cette

1) SELECT * from `users` WHERE  
`user_id` = '$array_valuer1' OR 
`user_id` = '$array_valuer2' OR 
`user_id` = '$array_valuer3' OR 
`user_id` = '$array_valuer4' OR 
`user_id` = '$array_valuer5' OR 
`user_id` = '$array_valuer6' OR 
----
----
`user_id` = '$array_valuern';

2) select all user --> SELECT * from `users`
   then using php script display only the userid in the SESSION array and skip other userid

Quelle est la meilleure pratique ? Le tableau SESSION est temporaire et je ne veux pas le sauvegarder dans une base de données.

merci

3voto

shiplu.mokadd.im Points 28895

Si vous stockez quelques identifiants d'utilisateur dans une session, c'est correct. Mais si le nombre est énorme, ne les stockez pas dans la session. Il est préférable de les récupérer en utilisant une requête.

Pour la requête, vous pouvez utiliser le formulaire suivant.

$q = "SELECT * from `users` WHERE `user_id` IN ('".implode("','", $array)."')";

1voto

Udan Points 2739

La réponse de shiplu.mokadd.im est bonne, mais l'utilisation de PDO est meilleure :

$db = new PDO("...");
$statement = $db->prepare("SELECT * from `users` WHERE `user_id` IN (':list')");
$statement->execute(array(':list' => implode("','", $array)));
$row = $statement->fetch();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X