19-06-2014, 07:02 PM
Rien ne t'empêche, dans une boucle, de stocker les résultats (dans une variable), et de ne les afficher que plus tard.
Comme dit Ter Rowan, il me semble qu'une seule requête sélectionnant tout (en l'ordonnant), suivie d'un tri dans le PHP sera plus appropriée...
Sinon, dans le genre bien pesant avec des gros sabots mais qui semble répondre à la demande, j'ai:
Testé et validé.
Je crois que je n'avais pas refait de requête aussi violente depuis eclerd XD
Après, de faire générale, UNION ALL|DISTINCT permet de faire des fusions de résultats de requêtes MySQL:
Mais là, $allResults n'est pas un tableau de 12 MySQLiResult: c'est directement le MySQLiResult correspondant aux 12 requêtes fusionnées.
Comme dit Ter Rowan, il me semble qu'une seule requête sélectionnant tout (en l'ordonnant), suivie d'un tri dans le PHP sera plus appropriée...
Sinon, dans le genre bien pesant avec des gros sabots mais qui semble répondre à la demande, j'ai:
// $mysqli = new mysqli('IP', 'user', 'password', 'db');
// On va considérer que $mysqli est l'objet MySQLi en charge des requêtes sur la DB
// Si ce n'est pas mysqli qui est utilisé, il faudra adapter le
// $mysqli->query()
$categoriesIndex = range(1,12);
$resultats = array();
foreach ($categoriesIndex as $index)
{
$resultats[$index] = $mysqli->query('SELECT * FROM `forum_auteur` WHERE `correspondance_sujet`='.(int)$index);
}
// $resultats contient 12 éléments, correspondant aux 12 catégories,
// chacun de ces élément étant l'ensemble des réponses de la requête
// pour la catégorie correspondante
// aka:
// $resultats_i = resultatsDeLaRequetePourLaCategorie_i
var_dump($resultats);
Testé et validé.
Je crois que je n'avais pas refait de requête aussi violente depuis eclerd XD
Après, de faire générale, UNION ALL|DISTINCT permet de faire des fusions de résultats de requêtes MySQL:
$categoriesIndex = range(1,12);
$categoriesRequetes = array_map(
function ($p_v)
{
return ('(SELECT * FROM `forum_auteur` WHERE `correspondance_sujet`='.(int)$p_v.')');
}, $categoriesIndex);
$requete = implode(' UNION ALL ', $categoriesRequetes);
$allResults = $mysqli->query($requete);
Mais là, $allResults n'est pas un tableau de 12 MySQLiResult: c'est directement le MySQLiResult correspondant aux 12 requêtes fusionnées.