Problème pour afficher une double requête avec PHP/MySQL
Résolu/Fermé
polarbird
Messages postés
105
Date d'inscription
vendredi 24 juin 2011
Statut
Membre
Dernière intervention
16 décembre 2023
-
2 mai 2017 à 23:44
jordane45 Messages postés 38320 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 novembre 2024 - 3 mai 2017 à 22:02
jordane45 Messages postés 38320 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 novembre 2024 - 3 mai 2017 à 22:02
A voir également:
- Problème pour afficher une double requête avec PHP/MySQL
- Double ecran - Guide
- Whatsapp double sim - Guide
- Easy php - Télécharger - Divers Web & Internet
- Double appel - Guide
- Double authentification google - Guide
3 réponses
jordane45
Messages postés
38320
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2024
4 707
Modifié le 3 mai 2017 à 00:05
Modifié le 3 mai 2017 à 00:05
Bonjour,
oulaaa....
Pas besoin de faire x requêtes ....
Une seule suffit .... ensuite il faut jouer avec des IF/else pour afficher ce que tu désires.
Par exemple
Cordialement,
Jordane
oulaaa....
Pas besoin de faire x requêtes ....
Une seule suffit .... ensuite il faut jouer avec des IF/else pour afficher ce que tu désires.
Par exemple
echo "<table>"; $result = $bdd->query('SELECT * FROM articles ORDER BY yr ASC, mo ASC LIMIT 10'); $annee_prec = NULL; $mo_prec =NULL; while($rows = $result->fetch()){ $annee = $rows['yr']; $mo = $rows['mo']; $titre = $rows['titre']; if($annee != $annee_prec){ echo "<tr><th colspan='2'>$annee</th></tr>"; } if($mo != $mo_prec){ echo "<tr> <th>$mo</th> </tr>"; } echo "<tr> <td> <a href='#' rel="nofollow noopener noreferrer" target="_blank" rel=\"nofollow noopener noreferrer\" target=\"_blank\">$titre</a> </td> </tr>"; $mo_prec = $mo; $annee_prec = $annee; } echo "</table>"; $req55->closeCursor(); ?>
Cordialement,
Jordane
polarbird
Messages postés
105
Date d'inscription
vendredi 24 juin 2011
Statut
Membre
Dernière intervention
16 décembre 2023
1
3 mai 2017 à 20:24
3 mai 2017 à 20:24
Okay merci. Juste une dernière question : je voudrais organiser cela en liste, l'utilisation du tableau était juste pour faire plus simple pour la présentation.Je voudrais présenter ça comme cela : https://codepen.io/anon/pen/dWzORR . Simplement avec ta requête je n'arrive pas à le faire, il y a toujours un problème. Voilà mon code et voilà ce que cela me donne.
Cela me donne :
Je galère depuis 3 heures et malgré mes recherches je ne trouve pas de solution :/
<?php $result = $bdd->query('SELECT * FROM articles ORDER BY yr ASC, mo ASC LIMIT 10'); $annee_prec = null; $mo_prec = null; while($rows = $result->fetch()){ $annee = $rows['yr']; $mo = $rows['mo']; $titre = $rows['titre']; if($annee != $annee_prec){ ?> <li><?php echo $annee; ?> <?php } if($mo != $mo_prec){ ?> <?php echo $mo; ?> <?php } if($mo != $mo_prec && $annee != $annee_prec){ ?> <a href="#" rel="nofollow noopener noreferrer" target="_blank"><?php echo $titre; ?></a> <?php echo '</li>'; $mo_prec = $mo; $annee_prec = $annee; } } $result->closeCursor(); ?>
Cela me donne :
<li>201411<a href="#" rel="nofollow noopener noreferrer" target="_blank">Manifestations en Roumanie</a> </li>12<li>201510<a href="#" rel="nofollow noopener noreferrer" target="_blank">q</a> </li><li>201703<a href="#" rel="nofollow noopener noreferrer" target="_blank">qaqaq</a> </li>
Je galère depuis 3 heures et malgré mes recherches je ne trouve pas de solution :/
jordane45
Messages postés
38320
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2024
4 707
3 mai 2017 à 21:44
3 mai 2017 à 21:44
Bonsoir,
1 - Évite d'ouvrir/fermer des balises PHP partout .... c'est franchement illisible !
Compare ton code avec mon précédent (ou le nouveau ci-dessous) pour voir la différence !
2 - Pour poster du code sur le forum.. merci d'indiquer le LANGAGE dans les balises de code histoire d'avoir la couleur ( explications ICI : Utilisation_des_balises_de_code )
3 - Tu as légèrement oublié les balises <UL> dans ton code ...
4 - Changeons la façon de faire....
On va retravailler le résultat de ta requête pour en faire un array associatif beaucoup plus facile à utiliser....
Essaye ça :
1 - Évite d'ouvrir/fermer des balises PHP partout .... c'est franchement illisible !
Compare ton code avec mon précédent (ou le nouveau ci-dessous) pour voir la différence !
2 - Pour poster du code sur le forum.. merci d'indiquer le LANGAGE dans les balises de code histoire d'avoir la couleur ( explications ICI : Utilisation_des_balises_de_code )
3 - Tu as légèrement oublié les balises <UL> dans ton code ...
4 - Changeons la façon de faire....
On va retravailler le résultat de ta requête pour en faire un array associatif beaucoup plus facile à utiliser....
Essaye ça :
<?php $result = $bdd->query('SELECT * FROM articles ORDER BY yr ASC, mo ASC LIMIT 10'); $arr_liste = array(); while($rows = $result->fetch()){ $annee = $rows['yr']; $mo = $rows['mo']; $titre = $rows['titre']; $arr_liste[$annee][$mo][]=$titre; } $result->closeCursor(); echo "<ul>"; foreach($arr_liste as $A=>$M){ echo "<li>" . $A; echo "<ul>"; foreach($M as $Mkey=>$T){ echo "<li>".$Mkey; echo "<ul>"; foreach($T as $Titre){ echo '<li><a href="#" rel="nofollow noopener noreferrer" target="_blank">'.$Titre.'</a></li>'; } echo "</ul>"; echo "</li>"; } echo "</ul>"; echo "</li>"; } echo "</ul>"; ?>
polarbird
Messages postés
105
Date d'inscription
vendredi 24 juin 2011
Statut
Membre
Dernière intervention
16 décembre 2023
1
3 mai 2017 à 21:55
3 mai 2017 à 21:55
Merci beaucoup de ta réponse et de tes conseils jordane45. J'ai toujours eu du mal avec les arrays c'est pourquoi je cherchais plutôt avec while. Le résultat est parfait, merci !
Bonne soirée,
Cordialement,
polarbird
Bonne soirée,
Cordialement,
polarbird
jordane45
Messages postés
38320
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2024
4 707
>
polarbird
Messages postés
105
Date d'inscription
vendredi 24 juin 2011
Statut
Membre
Dernière intervention
16 décembre 2023
3 mai 2017 à 22:02
3 mai 2017 à 22:02
Si la question est résolue ... merci de mettre le sujet en RESOLU (lien en haut, sous le titre de ta question)
3 mai 2017 à 17:00
Merci beaucoup pour ta réponse, elle m'a bien aidée ! C'est exactement ça ! Par contre à quoi sert le LIMIT 10 à la ligne 3-4 s'il te plaît ? Je veux afficher des articles et par la suite, il se peutr qu'il y en ait pas mal, cela ne va pas gêner tu penses ?
Cordialement,
polarbird
3 mai 2017 à 19:29
A toi d'adapter à tes besoins. ..