Eviter une boucle dans une autre en PHP
Ro
-
redlifebig Messages postés 60 Statut Membre -
redlifebig Messages postés 60 Statut Membre -
Bonjour,
Je liste les news situées dans ma base de données SQL à l'aide d'une boucle. Ma table news est comme ceci :
id, titre, contenu, categorie
Cependant categorie est stocké en tant que l'ID de la catégorie. Le nom de la catégorie est situé dans un fichier serializé comme ceci :
ID -> nom
ID -> nom
...
J'aimerais de façon légère pouvoir afficher le nom de ma catégorie, je pourrais faire ceci :
<?php
//Récupération des catégories
$categories=unserialize(file_get_contents('categories.txt'));
$query = mysql_query("SELECT id,titre,contenu,categorie ORDER BY id DESC");
while($news=mysql_fetch_assoc($query) {
echo'<h1>'.$news['titre'].'</h1>';
echo $news['contenu'];
//Affichage de la catégorie
foreach($categories as $id=>$categorie) {
if($news['categorie]==$id) $news['categorie']=$categorie; //Si les id correspondent on donne le nom de la catégorie
}
}
?>
Voici ce que j'aurais pu faire mais c'est lourd de devoir faire une boucle dans une autre ! Pouvez-vous m'aider à trouver une autre solution ?
Je liste les news situées dans ma base de données SQL à l'aide d'une boucle. Ma table news est comme ceci :
id, titre, contenu, categorie
Cependant categorie est stocké en tant que l'ID de la catégorie. Le nom de la catégorie est situé dans un fichier serializé comme ceci :
ID -> nom
ID -> nom
...
J'aimerais de façon légère pouvoir afficher le nom de ma catégorie, je pourrais faire ceci :
<?php
//Récupération des catégories
$categories=unserialize(file_get_contents('categories.txt'));
$query = mysql_query("SELECT id,titre,contenu,categorie ORDER BY id DESC");
while($news=mysql_fetch_assoc($query) {
echo'<h1>'.$news['titre'].'</h1>';
echo $news['contenu'];
//Affichage de la catégorie
foreach($categories as $id=>$categorie) {
if($news['categorie]==$id) $news['categorie']=$categorie; //Si les id correspondent on donne le nom de la catégorie
}
}
?>
Voici ce que j'aurais pu faire mais c'est lourd de devoir faire une boucle dans une autre ! Pouvez-vous m'aider à trouver une autre solution ?
A voir également:
- Eviter une boucle dans une autre en PHP
- Éviter pub youtube - Accueil - Streaming
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Php alert ✓ - Forum PHP
1 réponse
Bonjour
Vous pouvez enregistrer vos catégories dans une table SQL et utiliser une jointure
Maintenant si vous avez besoin d’utiliser serialize/unserialize voila la modification
$query = mysql_query("SELECT id,titre,contenu,categorie ORDER BY id DESC");
while($news=mysql_fetch_assoc($query) {
echo'<h1>'.$news['titre'].'</h1>';
echo $news['contenu'];
echo $categorie[$news['categorie]] ;
}
Cordialement
Vous pouvez enregistrer vos catégories dans une table SQL et utiliser une jointure
Maintenant si vous avez besoin d’utiliser serialize/unserialize voila la modification
$query = mysql_query("SELECT id,titre,contenu,categorie ORDER BY id DESC");
while($news=mysql_fetch_assoc($query) {
echo'<h1>'.$news['titre'].'</h1>';
echo $news['contenu'];
echo $categorie[$news['categorie]] ;
}
Cordialement