mysql_* est déprécié depuis un moment, il risque donc de sauter à tout instant et de ne plus être disponible dans les prochaines versions de PHP... Bon, sinon, procédural ou objet, il suffit d'adapter et de changer les:
Pour stocker puis afficher plus tard, tu fais exactement comme ma première proposition: $resultats est un tableau de mysql_result que tu peux, plus tard, parcourir pour les afficher.
Après, tu peux rajouter encore une couche intermédiaire, en parcourant ces résultats pour les stocker dans un tableau PHP:
Dans un tel cas, une requête plus simple:
Evitera la boucle imbriquée:
Mais si le nombre de messages devient grand (des milliers/millions), le tableau PHP va exploser en taille...
$mysqli->method(...);
par
mysql_method($mysqlConnection, ...);
Pour stocker puis afficher plus tard, tu fais exactement comme ma première proposition: $resultats est un tableau de mysql_result que tu peux, plus tard, parcourir pour les afficher.
Après, tu peux rajouter encore une couche intermédiaire, en parcourant ces résultats pour les stocker dans un tableau PHP:
$resultatsTableau = array();
foreach ($resultats as $index=>$resultatCategorie)
{
$resultatsTableau[$index] = array();
while ( ($ligne = mysql_fetch_assoc($resultatCategorie)) )
{
$resultatsTableau[$index][] = $ligne;
}
}
// faire les affichages plus tard, en utilisant $resultatsTableau
Dans un tel cas, une requête plus simple:
SELECT *
FROM `forum_auteur`
Evitera la boucle imbriquée:
$resultatsTableau = array_fill(1, 12, array());
while ( ($ligne = mysql_fetch_assoc($resultats)) )
{
$index = (int)$ligne['correspondance_sujet'];
$resultatsTableau[$index][] = $ligne;
}
// faire les affichages plus tard, en utilisant $resultatsTableau
Mais si le nombre de messages devient grand (des milliers/millions), le tableau PHP va exploser en taille...