Menu php sql

silvergreg Messages postés 8 Date d'inscription vendredi 27 octobre 2006 Statut Membre Dernière intervention 31 mai 2009 - 23 déc. 2007 à 00:19
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 - 23 déc. 2007 à 11:09
Bonjour
Partons de mon code de base

Si je met q'une seul ligne dans ma table ca affiche le menu1
correctement ,si je met la deuxieme ligne dans ma table celle du menu2
ca part en cacahouette.(genre mon menu ce dédouble)

TABLE MENUDYN

idmenu__nommenu__lienmenu

_1______MENU1_____lien <= === ligne du menu1

_2______MENU2_____lien <==== ligne du menu2


j'en est donc conclue que ca venais d'une fonction de tri ou un truc dans le genre.

Voila ma requete sql
<ol><li class ="li1">
<?php
</li><li class= "li1">
mysql_connect("localhost", "root", ""); // Connexion à MySQL
</li><li class="li1">
mysql_select_db("menu"); // Sélection de la base coursphp
</li><li class="li1">
$reponse = mysql_query("SELECT * FROM menudyn"); // Requête SQL
</li><li class="li1">
// On fait une boucle pour lister tout ce que contient la table :
</li><li class="li1">
while($donnees = mysql_fetch_array($reponse))
</li><li class="li1">
{
</li><li class="li1">
?>
</li></ol> et la j'affiche dans un menu


<?php if( $donnees['idmenu'] == 1 ) echo $donnees['nommenu'];?> <=== affichage du menu1

(si idmenu est égale a 1 affiché la table nommenu)

<?php if( $donnees['idmenu'] == 2 ) echo $donnees['nommenu'];?> <=== affichage du menu2

(si idmenu est égale a 2 affiché la table nommenu)

le probleme c que la j'affiche la totalitée de la table


et le résultat rechercher c'est:


si idmenu est égale a ? affiché le nommenu de la meme ligne que l'idmenu cité

Merci a ki voudra bien répondre

4 réponses

bizibiz17 Messages postés 142 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 29 août 2009 1
23 déc. 2007 à 00:37
Salut,


Voilà un exemple pour stocker séparément les données de ta requete (remplace odbc par mysql a priori c pareil).

$conn = odbc_connect($host,$user,$password) or die("erreur de connexion à la base de données");
//Accès à la table

$query = "SELECT * FROM menudyn";

$result = odbc_exec($conn,$query);
//boucle de lecture

while(odbc_fetch_row($result))

{

    $idMenu = odbc_result($result,1);

    $nomMenu = odbc_result($result,2);

    $lienMenu = odbc_result($result,3);

}

odbc_close($conn);

Vu que tes données sont séparées tu peux maitenant tester la valeur de ton idMenu etc...
0
silvergreg Messages postés 8 Date d'inscription vendredi 27 octobre 2006 Statut Membre Dernière intervention 31 mai 2009
23 déc. 2007 à 02:00
salut tres sympa de repondre

J'ai fais les modifs
<hr size= "2" width="100%" /><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<?php
$host = "localhost";
$user = "root";
$password = "";
$conn = mysql_connect($host,$user,$password) or die("erreur de connexion à la base de données"); // Connexion à MySQL
mysql_select_db("menu"); // Sélection de la base menu
$query = "SELECT * FROM menudyn"; // Requête SQL
$result = exec($conn,$query);
// On fait une boucle pour lister tout ce que contient la table :
while(mysql_fetch_row($result))
{
    $idMenu = mysql_result($result,1);
    $nomMenu = mysql_result($result,2);
    $lienMenu = mysql_result($result,3);
}
mysql_close($conn);
?>
<hr size="2" width="100%" />Attention c koi ses erreurs lol? please help
jai mi en gras les lignes 11 et 13 ci dessus

Warning : exec() expects parameter 1 to be string, resource given in C:\Program Files\EasyPHP 2.0b1\www\site\site.php on line 11

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\site\site.php on line 13

<hr size ="2" width="100%" />Ensuite pour l'affichage c toujours un peu obscure

<?php echo  ......?>

je nage la dedans depuis une semaine juste pour faire un menu et je me sens vraiment nul.

juste un indice pour echo ca serai top que tu me maches pas le travail

MERCI
0
bizibiz17 Messages postés 142 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 29 août 2009 1
23 déc. 2007 à 02:25
A la ligne 11, ne fais pas $result = exec($conn,$query); car déjà ce n'est pas la bonne syntaxe et en plus exec retourne le nombre de lignes affectées et ce n'est pas ce que tu veux dans $result c'est pour ça que la ligne 13 ne marche pas.

Je viens de regarder un peu de doc et je pense que c'est la ligne en rouge qui est fausse (par rapport à ton code d'origine) :

<ol><li class="li1">
<?php
</li><li class="li1">
mysql_connect("localhost", "root", ""); // Connexion à MySQL
</li><li class="li1">
mysql_select_db("menu"); // Sélection de la base coursphp
</li><li class="li1">
$reponse = mysql_query("SELECT * FROM menudyn"); // Requête SQL
</li><li class="li1">
// On fait une boucle pour lister tout ce que contient la table :
</li><li class="li1">
while($donnees =mysql_fetch_arrayhttp://www.php.net/mysql_fetch_array($reponse))
</li><li class="li1">
{
</li><li class="li1">
?>
</li></ol>Remplace là par :
 
mysql_fetch_array($reponse, MYSQL_ASSOC) //
modifie ça en gardant ton code de départ


                
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
23 déc. 2007 à 11:09
Qu'est ce que vous avez tous à poster vos questions dans le Bar en ce moment  !

Question redirigée dur Bar vers "PHP / Base de données / MySQL".

Bonne journée et bonnes fêtes,

<hr width="100%" size="2" />Nurgle (Antoine) - MSP
0
Rejoignez-nous