Salut à tous , et voici mon problème :
j'ai deux tables une qui s'appelle posts et l'autre s'appelle comments. J'aimerais récuperer en même temps un post et tout les commentaires qui lui sont associés.
// La requête ci-dessous ne me retourne que le premier commentaire de la table comments
$sql = "SELECT * FROM posts LEFT JOIN comments ON posts.category_id=comments.id";
De plus j'ai créer une fonction suivante :
function mysql_fetch_alias_array($result) {
if (!($row = mysql_fetch_array($result))) {
return null;
}
$assoc = Array();
$rowCount = mysql_num_fields($result);
for ($idx = 0; $idx < $rowCount; $idx++) {
$table = mysql_field_table($result, $idx);
if (empty($table)) {
$table = 'count';
}
$field = mysql_field_name($result, $idx);
$assoc$table]$field] = $row$idx];
}
return $assoc;
}
En gros ca retourne un tableau comme ceci
nom_du_tableau => array(
'posts'] => array(
[id] => valeur du champ
...
...)
'comments] => array(
[id] => valeur du champ
...
...)
)
et je voudrais que tout les commentaires soient dans le sous-tableau comments. En esperant avoir été clair je vous remercie d'avance.. MyghtyDespe
Si je comprends bien ton besoin il te faudrait un tableau de type
array ( 'id' => id ,
'titre' => titre ,
'contenu' => contenu ,
'comments' => array ( array ( 'id' => id ,
'titre' => titre ,
'msg' => message) ,
array ( 'id' => id ,
'titre' => titre ,
'msg' => message) ,
Dans un même niveau du tableau il est plus simple de gérer des éléments du même type, comme ça tu peux parcourir avec un foreach.
ici :
afficher $article'titre'] ;
afficher $article'contenu'] ;
foreach (article'comments'] as $commentaire ) {
afficher $commentaire'titre'] ;
afficher $commentaire'msg'] ;
}
Pour réaliser un tel tableau, tu peux procéder en deux requêtes ce sera plus simple. La première qui remplit ton tableau article, et la deuxième qui ajoute des tableaux commentaire dans $article'comment']