par
Cyrano » 17 mars 2008, 12:19
Évite donc les requêtes en boucle et procède autrement. Utilise une clause IN qui sera plus efficace.
-1- mettre les valeurs dans une chaine avec explode() :
$vals = explode(',', $valeur);
-2- Construire la requête :
$requete="SELECT titre FROM matable WHERE id IN (". $vals .")";
Ce qui donnera une requête du genre :
Teste déjà la requête telle quelle avec phpMyAdmin : après, tu pourras virer la boucle while() devenue inutile pour l'exécution de la requête qui n'a plus besoin d'être exécuté qu'une seule fois.
Tu auras après peut-être besoin d'une boucle pour le traitement du retour, mais ceci est un autre chapitre

Évite donc les requêtes en boucle et procède autrement. Utilise une clause IN qui sera plus efficace.
-1- mettre les valeurs dans une chaine avec explode() :
[php]$vals = explode(',', $valeur);[/php]
-2- Construire la requête :
[php]$requete="SELECT titre FROM matable WHERE id IN (". $vals .")"; [/php]
Ce qui donnera une requête du genre :
[code]SELECT titre FROM matable WHERE id IN (22,139,2089)[/code]
Teste déjà la requête telle quelle avec phpMyAdmin : après, tu pourras virer la boucle while() devenue inutile pour l'exécution de la requête qui n'a plus besoin d'être exécuté qu'une seule fois.
Tu auras après peut-être besoin d'une boucle pour le traitement du retour, mais ceci est un autre chapitre ;)