IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Menu liste SQL [PDO]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Menu liste SQL
    Bonsoir,

    J'ai aucune erreur mais le menu liste ne s'affiche donc je pose mon code au cas ou !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     <?php 
    function affiche_menu($idpage) {
        global $db;
     
    	$sql = 'SELECT * FROM pages WHERE Id_parent = :Id_page';
     
    	$statement = $db->prepare($sql);
    	$statement->execute(array(':Id_page' => $idpage));
        $tabl_results = $statement->fetchAll();
     
        // Si la page n'a pas de page fille, alors on modifie la requ�te pour obtenir ses pages soeurs.
        if (count($tabl_results) == 0) {
        	$statement->execute(array(':Id_page'   => $_ENV['Id_parent']));
            $tabl_results = $statement->fetchAll();
        }
     
        $menu_retour = '<ul>';
        while  ($tabl_results = $statement->fetchAll()) {
        	$menu_retour .= '<li>';
        	$menu_retour .= '<a href="index.php?id_page='.$tabl_result['Id_page'].'">';
        	$menu_retour .= $tabl_result['Titre'];
        	$menu_retour .= '</a>';
        	$menu_retour .= '</li>';
        }
        $menu_retour .= '</ul>';
        return $menu_retour;
     
    }
     
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="menu-main-nav">
            <?php
               echo  affiche_menu($id_page_accueil);      
    	?>
    </div>
    merci de votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu fais feux fois fetchAll sur la même requête.
    Plutôt comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     $menu_retour = '<ul>';
        foreach($tabl_results as $values) {
        	$menu_retour .= '<li>';
        	$menu_retour .= '<a href="index.php?id_page='.$values['Id_page'].'">';
        	$menu_retour .= $values['Titre'];
        	$menu_retour .= '</a>';
        	$menu_retour .= '</li>';
        }
        $menu_retour .= '</ul>';
    Au passage, quand tu debugs, affiche bien toutes les erreurs PHP.
    Tu aurais du avoir une erreur sur $tabl_result qui n'existe pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    merci sabotage pour ce conseil par contre le lien ne s'affiche pas sur la page php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="menu-main-nav">
            <?php
               echo  affiche_menu($id_page_accueil);
    	?>
    </div>

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,

    Je ne sais pas si j'ai bien fait mais je viens de modifier mon code mais hélas toujours une page blanche, aucun menu liste !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <?php
    $id_page_accueil = 1;
     
    if (isset($_GET['id_page']))
    {
        $_ENV['id_page'] = $_GET['id_page'];
    }
    else
    {
        $_ENV['id_page'] = $id_page_accueil;
    }
     
    function affiche_menu($idpage)
    {
    global $bdd;
     
        $sql = 'SELECT * FROM pages WHERE id_parent = :id_page';
        $statement = $bdd->prepare($sql);
        $statement->execute(array(':id_page'   => $idpage));
        $tabl_results = $statement->fetchAll();
     
        // Si la page n'a pas de page fille, alors on modifie la requète pour obtenir ses pages soeurs.
        if (count($tabl_results) == 0)
        {
            $statement->execute(array(':id_page'   => $_ENV['id_parent']));
            $tabl_results = $statement->fetchAll();
        }
     
        if(count($tabl_results))
        {
     
            foreach($tabl_results as $tabl_result)
            {
              $tabl_result = array(
                    'id'      => $tabl_result['id_page'],
                    'titre'  => $tabl_result['titre']
                    );
            }
        }
     
     
    }
    {
    echo affiche_menu($id_page_accueil);
    }
    ?>
    Merci de votre aide.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Ne maîtrisant pas PDO et encore moins les fonctions, je te conseilles d'écrire un premier PHP avec un simple PDO,En t'inspirant d'une structure de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php
    $id_page = (isset($_GET['id_page'])) ? $_GET['id_page'] : 1;
    $sql = 'SELECT * FROM pages WHERE id_parent = :id_page';
    $statement = $bdd->prepare($sql);
    $statement->execute(array(':id_page'   => $id_page));
    ?>
    <html><body>
    <div id="menu-main-nav"><ul>
    <?php
    while ($donnees = $statement->fetch())
     {
       echo '<li><a href="index.php?id_page='.$donnees['Id_page'].'">'; 
       echo ' '.$donnees['Titre'].'</a></li><br />';
     }
    ?>
    </ul></div>
    </body></html>
    Dernière modification par Invité ; 10/06/2013 à 00h21.

  6. #6
    Membre chevronné

    Avatar de nicosmash
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 395
    Points : 2 107
    Points
    2 107
    Par défaut
    Il me semble qu'il faut repréparer la requête ...
    Car votre variable statement a déjà pris un execute et ses paramètres.

    Essayer de voir ce que contient $statement avec un var_dump là où vous l'utilisez.

    Un après la ligne 20 et un après la ligne 26 :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($statement);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impossible de modifier menu.list
    Par fallais dans le forum Administration système
    Réponses: 1
    Dernier message: 24/06/2007, 02h54
  2. List Menu + Request SQL select Distinct
    Par delavega dans le forum ASP
    Réponses: 1
    Dernier message: 01/04/2007, 22h23
  3. [Javascript] Menu/Liste
    Par eown dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/04/2006, 11h54
  4. [PHP-JS] menu liste // menu déroulant
    Par Empty_body dans le forum Langage
    Réponses: 29
    Dernier message: 10/01/2006, 22h49
  5. Comment changer la clour de fond d'un menu list
    Par pierrot10 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 26/09/2005, 16h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo