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 :

faire un lien en php [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut faire un lien en php
    bonjour
    je cherche le code approprié pour faire un lien en php. j'ai réalisé un script d'un menu déroulant:
    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
     <?php
    mysql_select_db($database_dream, $dream);
    $query = 'SELECT item_menu, id_menu FROM menu WHERE id_menu_dir is NULL';
    $data = mysql_query($query) or die(mysql_error());
    echo '<div id="menu">';
    $i = 1;
    while($row = mysql_fetch_assoc($data)) {
    echo '<div class="menu" id="menu' . $i . '" onclick="afficheMenu(this);"><a href="#">' . $row['item_menu'] . '</a></div>';
    $subQuery = 'SELECT item_menu FROM menu WHERE id_menu_dir =' . $row['id_menu'];
    $subData = mysql_query($subQuery) or die(mysql_error());
    echo '<div id="sousmenu' . $i . '" style="display:none;">';
    
    while ($subRow = mysql_fetch_assoc($subData)) {
    echo '<div class="sousmenu"><a href="#">' . $subRow['item_menu'] . '</a></div>';
    }
    echo '</div>';
    $i++;
    }
    echo '</div>';
    ?>
    celui-ci, en vert doit me renvoyer vers les différents id de ma table menu

    je prévois ensuite une jointure avec une autre table.
    avez-vous une idée, Merci

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Hum... Je suppose que si tu récupères l'id dans la requête qui lit les intitulés et que tu le passes en paramètres à un lien ça devrait fonctionner...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $subQuery = 'SELECT id_menu, item_menu FROM menu WHERE id_menu_dir =' . $row['id_menu'];
    $subData = mysql_query($subQuery) or die(mysql_error());
    echo '<div id="sousmenu' . $i . '" style="display:none;">';
     
    while ($subRow = mysql_fetch_assoc($subData)) {
    echo '<div class="sousmenu"><a href="page_de_destination.php?id='.$subRow['id_menu'].'">' . $subRow['item_menu'] . '</a></div>';
    }
    Et dans la page de destination tu récupères l'id via un bon vieux $_GET['id']
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    malheureusement j'ai un message d'erreur
    Notice: Undefined index: id_menu in C:\Program Files\EasyPHP5.3.0\www\menuisier\include\menu_accordeon.php on line 92

  4. #4
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    j'avais oublié de sélectionner id_menu dans la requête, plus d'erreur

  5. #5
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    voici ma seconde table

    et ma requête qui joint les 2 tables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $colname_cat = "-1";
    if (isset($_GET['id_menu'])) {
      $colname_cat = $_GET['id_menu'];
    }
    mysql_select_db($database_dream, $dream);
    $query_cat = sprintf("SELECT articles.titre, articles.`description`, articles.prix, articles.photo, menu.id_menu FROM articles, menu WHERE articles.ref_menu=menu.id_menu and id_menu=%s", GetSQLValueString($colname_cat, "int"));
    $query_limit_cat = sprintf("%s LIMIT %d, %d", $query_cat, $startRow_cat, $maxRows_cat);
    $cat = mysql_query($query_limit_cat, $dream) or die(mysql_error());
    $row_cat = mysql_fetch_assoc($cat);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php do { ?>
        <p><?php echo $row_cat['titre']; ?></p>
        <?php } while ($row_cat = mysql_fetch_assoc($cat)); ?>
    y -a t-il une erreur car rien ne s'affiche

  6. #6
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    c'est bon ca marche il fallait mettre id_menu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<div class="sousmenu"><a href="page_de_destination.php?id='.$subRow['id_menu'].'">' . $subRow['item_menu'] . '</a></div>';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a href="catalogue.php?id_menu='
    dans le menu déroulant
    maintenant pour corser l'affaire les sous menus ne reste pas affiché comme avant quand on clique sur le menu principal.

  7. #7
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    çà vient peut-être du javascript, c'est un exemple pris sur developpez.net

  8. #8
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    je pense plutôt que lorsque l'on clique sur un sous menu ça recharge les données, et donc ça réinitialise le menu.
    il faudrait, je pense récupérer la valeur de id_menu, et s'assurer qu'il soit visible.
    Avez-vous une idée?

  9. #9
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    j'ai pensé à rajouter le code en vert ici
    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
    <?php
    mysql_select_db($database_dream, $dream);
    $query = 'SELECT item_menu, id_menu FROM menu WHERE id_menu_dir is NULL';
    $data = mysql_query($query) or die(mysql_error());
    echo '<div id="menu">';
    $i = 1;
    while($row = mysql_fetch_assoc($data)) {
    echo '<div class="menu" id="menu' . $i . '" onclick="afficheMenu(this);"><a href="#">' . $row['item_menu'] . '</a></div>';
    $subQuery = 'SELECT id_menu, item_menu FROM menu WHERE id_menu_dir =' . $row['id_menu'];
    $subData = mysql_query($subQuery) or die(mysql_error());
    echo '<div id="sousmenu' . $i . '" style="display:none;">';
    while ($subRow = mysql_fetch_assoc($subData)) {
    echo '<div class="sousmenu"><a href="catalogue.php?id_menu='.$subRow['id_menu'].'">' . $subRow['item_menu'] . '</a></div>';
    if ($subRow['id_menu'] == $_GET['id_menu']) {
    echo '<script type="text/javascript">afficheMenu(document.getElementById(\'menu\'' . $i . '\'));</script>';
    }
    }
    echo '</div>';
    $i++;
    }
    echo '</div>';
    ?>
    </div>
    <?php
    mais çà ne fonctionne pas

  10. #10
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    script terminé, qui fonctionne
    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
     <?php
    mysql_select_db($database_dream, $dream);
    $query = 'SELECT item_menu, id_menu FROM menu WHERE id_menu_dir is NULL';
    $data = mysql_query($query) or die(mysql_error());
    echo '<div id="menu">';
    $i = 1;
    while($row = mysql_fetch_assoc($data)) {
    echo '<div class="menu" id="menu' . $i . '" onclick="afficheMenu(this);"><a href="#">' . $row['item_menu'] . '</a></div>';
    $subQuery = 'SELECT id_menu, item_menu FROM menu WHERE id_menu_dir =' . $row['id_menu'];
    $subData = mysql_query($subQuery) or die(mysql_error());
    echo '<div id="sousmenu' . $i . '" style="display:none;">';
    while ($subRow = mysql_fetch_assoc($subData)) {
    echo '<div class="sousmenu"><a href="catalogue.php?id_menu='.$subRow['id_menu'].'">' . $subRow['item_menu'] . '</a></div>';
    if (isset($_GET['id_menu']) && $subRow['id_menu'] == $_GET['id_menu']){
    echo '<script type="text/javascript">afficheMenu(document.getElementById(\'menu' . $i . '\'));</script>';
    }
    }
    echo '</div>';
    $i++;
    }
    echo '</div>';
    ?>

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

Discussions similaires

  1. Faire un lien entre flash et php
    Par xzéna dans le forum Flash
    Réponses: 1
    Dernier message: 12/11/2012, 11h56
  2. [MySQL] comment faire un lien avec un bouton pour ouvrir une page en php
    Par Debutant10 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 10/04/2012, 21h11
  3. Comment faire un lien interne dans un fichier php?
    Par Alexandrebox dans le forum Langage
    Réponses: 1
    Dernier message: 22/11/2007, 01h24
  4. [PHP-JS] Faire un lien dans un for
    Par medmans dans le forum Langage
    Réponses: 1
    Dernier message: 31/07/2007, 16h04
  5. Réponses: 6
    Dernier message: 20/07/2007, 01h38

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