Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/12/2011, 18h31   #1
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
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 :
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
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 11h42   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 664
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 664
Points : 5 390
Points : 5 390
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 :
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)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 13h45   #3
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
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
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 14h26   #4
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
j'avais oublié de sélectionner id_menu dans la requête, plus d'erreur
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 14h38   #5
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
voici ma seconde table

et ma requête qui joint les 2 tables.
Code :
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 :
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
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 14h53   #6
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
c'est bon ca marche il fallait mettre id_menu
Code :
echo '<div class="sousmenu"><a href="page_de_destination.php?id='.$subRow['id_menu'].'">' . $subRow['item_menu'] . '</a></div>';
Code :
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.
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 15h45   #7
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
çà vient peut-être du javascript, c'est un exemple pris sur developpez.net
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 16h57   #8
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
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?
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 17h11   #9
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
j'ai pensé à rajouter le code en vert ici
Code :
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
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 14h01   #10
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
script terminé, qui fonctionne
Code :
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>';
?>
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h36.


 
 
 
 
Partenaires

Hébergement Web