Un souci dans un menu simple dans le contexte de tableaux MySql
Résolu/Fermé
Sebas22
Messages postés
110
Date d'inscription
jeudi 13 mai 2010
Statut
Membre
Dernière intervention
24 juillet 2018
-
28 juin 2016 à 18:19
Sebas22 Messages postés 110 Date d'inscription jeudi 13 mai 2010 Statut Membre Dernière intervention 24 juillet 2018 - 29 juin 2016 à 17:14
Sebas22 Messages postés 110 Date d'inscription jeudi 13 mai 2010 Statut Membre Dernière intervention 24 juillet 2018 - 29 juin 2016 à 17:14
A voir également:
- Un souci dans un menu simple dans le contexte de tableaux MySql
- Comment faire un tableau - Guide
- Menu déroulant excel - Guide
- Iphone 14 simple - Guide
- Comment faire un tableau croisé dynamique - Guide
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Musique / Radio / Clip
3 réponses
jordane45
Messages postés
38347
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 décembre 2024
4 719
Modifié par jordane45 le 28/06/2016 à 21:01
Modifié par jordane45 le 28/06/2016 à 21:01
Bonjour,
Commence par ajouter, en haut de ton fichier php (avant toute autre instruction...) le code :
Ensuite, active l'affichage des erreurs PDO en adaptant le script suivant à ta connexion pdo actuelle:
Et enfin... pense à utiliser des bloc TRY/Catch pour intercepter les éventuelles erreurs dans le code ou les requêtes.
par exemple pour ton code actuel :
Tu noteras que dans le foreach j'ai extrait les variables AVANT de les utiliser....
Tu verras également que ton [0] a disparu... (cause probable de ton erreur au départ....)
Cordialement,
Jordane
Commence par ajouter, en haut de ton fichier php (avant toute autre instruction...) le code :
// affiche les erreurs PHP error_reporting(E_ALL);
Ensuite, active l'affichage des erreurs PDO en adaptant le script suivant à ta connexion pdo actuelle:
<?php //Fichier de connexion à la BDD à inclure dans les pages try{ $bdd = new PDO('mysql:host=localhost;dbname=site1;charset=utf8', 'root', ''); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } ?>
Et enfin... pense à utiliser des bloc TRY/Catch pour intercepter les éventuelles erreurs dans le code ou les requêtes.
par exemple pour ton code actuel :
function getMenu($bdd) { $sql = "SELECT Rang , monliennomassocie FROM table1 ORDER BY monliennomassocie"; //exécution de la requete try{ $prepare = $bdd->prepare($sql); $prepare->execute(); }catch(Exception $e){ //en cas de souci dans la requete echo "Erreur ! " .$e->getMessage(); } // on stocke le résultat dans un array $result = $prepare->fetchAll(); foreach($result as $row){ $rang = $row['Rang']; $monliennomassocie = $row[' monliennomassocie']; echo "<a href='mapage.php?Rang=$rang'> <i>$monliennomassocie</i> </a>"; } }
Tu noteras que dans le foreach j'ai extrait les variables AVANT de les utiliser....
Tu verras également que ton [0] a disparu... (cause probable de ton erreur au départ....)
Cordialement,
Jordane
Sebas22
Messages postés
110
Date d'inscription
jeudi 13 mai 2010
Statut
Membre
Dernière intervention
24 juillet 2018
5
29 juin 2016 à 15:25
29 juin 2016 à 15:25
Bonjour Jordane45,
Et merci de ton aide !
D’abord petit souci de communication, je suis débutant en PDO mais j’ai déjà réalisé des requêtes simples sur ma page et j’avais déjà 2 des 3 contrôles d’erreur que tu a suggérés.
J’ai ajouté le 3ème.
J’ai réarrangé la requête comme tu proposes et j’ai enlevé l’erreur de [0], et çà marche nickel.
Tu as trouvé !
Super et bravos !
Et tu me fais progresser avec tes conseils.
Me permets-tu une petite question subsidiaire (là je ne sais pas comment faire du tout).
Comme mon menu fait plus de 300 lignes, bonjour la galère avec l’ascenseur pour les mots commençant au delà de la lettre n !
Donc pourrais-tu me piloter pour le rendre un peu dynamique avec php (avec ou pas de js) ?
3 options,
simple, je met des signets A | B | C | D etc au début de la liste et alors dans ma requête sql il faut insérer des intertitres avec une lettre seule à chaque fois que les mots changent de 1ère lettre, par exemple en passant de A à B sans casse (les 26 lettres de l’alphabet sont bien utilisées, majuscule ou minuscule)
avancée, en clonant mon menu statique précédent avant MySql (avec mon js existant), et là je devrais pouvoir partir de l’option 1, car avec mon js je n’ai que 2 types de code :
Pour une lettre seule : <div class="menu" id="menu1" onclick="afficheMenu(this)"><a href="#">A</a></div><div id="sousmenu1" style="display:none"> (A correspond à 1, B à 2 etc., donc 3 occurrences variables, lettre, nombre, nombre)
Pour chaque mot : <div class="sousmenu"><a href="mapage.php?Rang=$rang"><i>$monliennomassocie</i></a></div>
sophistiquée (seulement du php), pas de signet et le menu ne comprend que les 26 lettres de l’alphabet verticalement et en cliquant sur une lettre le menu se déploie pour faire apparaître les mots avec comme 1ère lettre la lettre en question (c’est ce que j’avais avant MySql, mais comme indiqué ci-dessus, j’utilisais un js)
J’espère que tu peux m’aider sans te prendre la tête (l’option 1 me va bien)
Merci encore !
A+
Seb
Et merci de ton aide !
D’abord petit souci de communication, je suis débutant en PDO mais j’ai déjà réalisé des requêtes simples sur ma page et j’avais déjà 2 des 3 contrôles d’erreur que tu a suggérés.
J’ai ajouté le 3ème.
J’ai réarrangé la requête comme tu proposes et j’ai enlevé l’erreur de [0], et çà marche nickel.
Tu as trouvé !
Super et bravos !
Et tu me fais progresser avec tes conseils.
Me permets-tu une petite question subsidiaire (là je ne sais pas comment faire du tout).
Comme mon menu fait plus de 300 lignes, bonjour la galère avec l’ascenseur pour les mots commençant au delà de la lettre n !
Donc pourrais-tu me piloter pour le rendre un peu dynamique avec php (avec ou pas de js) ?
3 options,
simple, je met des signets A | B | C | D etc au début de la liste et alors dans ma requête sql il faut insérer des intertitres avec une lettre seule à chaque fois que les mots changent de 1ère lettre, par exemple en passant de A à B sans casse (les 26 lettres de l’alphabet sont bien utilisées, majuscule ou minuscule)
avancée, en clonant mon menu statique précédent avant MySql (avec mon js existant), et là je devrais pouvoir partir de l’option 1, car avec mon js je n’ai que 2 types de code :
Pour une lettre seule : <div class="menu" id="menu1" onclick="afficheMenu(this)"><a href="#">A</a></div><div id="sousmenu1" style="display:none"> (A correspond à 1, B à 2 etc., donc 3 occurrences variables, lettre, nombre, nombre)
Pour chaque mot : <div class="sousmenu"><a href="mapage.php?Rang=$rang"><i>$monliennomassocie</i></a></div>
sophistiquée (seulement du php), pas de signet et le menu ne comprend que les 26 lettres de l’alphabet verticalement et en cliquant sur une lettre le menu se déploie pour faire apparaître les mots avec comme 1ère lettre la lettre en question (c’est ce que j’avais avant MySql, mais comme indiqué ci-dessus, j’utilisais un js)
J’espère que tu peux m’aider sans te prendre la tête (l’option 1 me va bien)
Merci encore !
A+
Seb
jordane45
Messages postés
38347
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 décembre 2024
4 719
29 juin 2016 à 15:52
29 juin 2016 à 15:52
Bonjour,
Ceci étant une NOUVELLE question... merci de mettre cette discussion en "RESOLUE" (lien se trouvant sous le titre de ta question) et d'ouvrir une nouvelle discussion propre à cette nouvelle problématique.
Cela permet rend la navigation dans ce forum plus simple et la recherche de messages/solutions plus rapide pour TOUS les visiteurs de ce site.
Ceci étant une NOUVELLE question... merci de mettre cette discussion en "RESOLUE" (lien se trouvant sous le titre de ta question) et d'ouvrir une nouvelle discussion propre à cette nouvelle problématique.
Cela permet rend la navigation dans ce forum plus simple et la recherche de messages/solutions plus rapide pour TOUS les visiteurs de ce site.
Sebas22
Messages postés
110
Date d'inscription
jeudi 13 mai 2010
Statut
Membre
Dernière intervention
24 juillet 2018
5
29 juin 2016 à 17:14
29 juin 2016 à 17:14
OK, Jordane45. Avec plaisir.
Encore merci!
Seb
Encore merci!
Seb