debutant02
le 23 janvier 2009 à 22h57
voir son profil
Bonsoir tout le monde,
Meilleurs voeux,
Je rencontre un problème avec un menu déroulant dont les items restent sans réponse.
Ma consultation du manuel ne m'a pas apporté d'éclaircissement, je dois être confronté à un problème de compréhension, j'imagine.
Voici le code source :
-------------------------------------
<HTML><body>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("mabase2");
// tri par cheval
echo '<p> Affichage des choix :</p>';
echo '<form method="GET" action="'.$_SERVER['PHP_SELF'].'">';
echo ' <select name="choix" id="menu">';
$resultat=mysql_query("select CHEVAL from monecurie") or die ("Requête non executée.");
while ($ligne=mysql_fetch_array($resultat))
{
echo '<option>'.$ligne["CHEVAL"].'</option>';
}
echo '</select>';
echo '<input type="submit" value="Afficher" name="go">';
echo '</form>';
// afficher les détails
if(!$_GET['choix']){
exit;
}
$resultat2 = mysql_query("Select * from monpmu01 where CHEVAL=".$choix) or die ("Requête non executée.");
$ligne2 = mysql_fetch_array($resultat2);
echo $ligne2['CHEVAL'].'<br>';
echo $ligne2['HIPPO'].'<br>';
echo $ligne2['DATE'].'<br>';
echo $ligne2['JOCKEY'].'<br>';
mysql_close();
?>
</body>
</html>
Je reçois 2 messages d'erreur :
Notice: Undefined index: choix in c:\program files\easyphp1-8\www\mon_pmu\deroulant008test.php on line 29
ligne : if(!$_GET['choix']){
et
Notice: Undefined variable: choix in c:\program files\easyphp1-8\www\mon_pmu\deroulant008test.php on line 32
Requête non executée.
ligne :
$resultat2 = mysql_query("Select * from monpmu01 where CHEVAL=".$choix) or die ("Requête non executée.");
Le menu déroulant s'affiche bien mais ses items restent sans réponse.
Je bloque sur ces erreurs. Je recherche donc un conseil pour orienter ma recherche d'une solution.
Par avance merci.
hamster3553
le 24 janvier 2009 à 08h21
voir son profil
Salut,
a cette ligne
echo '<option>'.$ligne["CHEVAL"].'</option>';
tes <option> n'ont aucune valeur !
remplacer par:
echo '<option value="'.$ligne["CHEVAL"].'">'.$ligne["CHEVAL"].'</option>';
ca devrait fonctionner.
-->Message édité par hamster3553 le 24/01/2009 08:23:06<--
debutant02
le 24 janvier 2009 à 13h49
voir son profil
Bonjour tout le monde,
Bonjour hamster,
J'ai apporté la correction, effectivement si value est vide, ça ne peut pas marcher.
J'obtiens donc un message d'erreur que voici :
Notice: Undefined index: choix in c:\program files\easyphp1-8\www\mon_pmu\deroulant008test.php on line 26 ci-dessous :
if(!$_GET['choix']){
puis si je chosis dans le menu déroulant qui lui fonctionne :
Undefined variable: choix in c:\program files\easyphp1-8\www\mon_pmu\deroulant008test.php on line 29 ci-dessous :
$resultat2 = mysql_query("Select * from monpmu01 where CHEVAL=".$choix) or die ("Requête non executée.");
J'ai donc déclaré une variable ainsi :
$choix='choix';
Je n'obients plus aucun message d'erreur hormis : la mention : reqête non exécutée.
Le menu fonctionne mais reste inactif.
Je crois que je me mélange les pinceaux dans les variables.
Si vous avez une idée ?
Par avance merci, bon samedi.
debutant02
le 25 janvier 2009 à 19h05
voir son profil
Bonsoir tout le monde,
J'ai re-bidouillé mon truc en déclarant la variable comme ceci :
$choix = $_GET['choix'];
Maintenant tout fonctionne très bien, aucun message d'erreur ...... => mais aucun affichage des données
Je bloque sur cet affichage qui ne se fait pas.
Par avance merci de votre explication du phénomène.
Bonne semaine
hamster3553
le 26 janvier 2009 à 09h24
voir son profil
tu as fait un echo $choix pour voir si cela t'affichait quelque chose?
debutant02
le 26 janvier 2009 à 10h44
voir son profil
Bonjour du lundi,
La commmmande : echo $choix n'affiche rien.
J'ai vérifié la table dans la base par phpadmin, aucune erreur n'est signalée.
Lors de l'affichage de la page contenat le menu déroulant,
un message d'erreur de type :
undefinied index choix apparaît.
Lorsque je clique sur un item du menu déroulant, seul apparaît sous le menu déroulant, le texte :
requête non exécutée.
Les items du menu ne renvoient rien.
J'ai tenté de déclarer en variable : $ligne $ligne2 resultat2 $cheval, cela ne fonctionne pas.
Dois-je traquer l'erreur au niveau variable ou requête ? En tout cas, je continue à chercher.
Merci et à bientôt
hamster3553
le 26 janvier 2009 à 11h04
voir son profil
si echo $choix, n'affiche rien, c'est que sa valeur n'est pas passée !
arrghhh je viens de voir le probleme !
// afficher les détails
//si le bouton submit est cliqué
if(isset($_GET['go'])){
// on verifie que la valeur get existe.si ellle n''existe pas
if(!$_GET['choix']){
exit;
}
//si elle existe
else{
$resultat2 = mysql_query("Select * from monpmu01 where CHEVAL=".$choix) or die ("Requête non executée.");
$ligne2 = mysql_fetch_array($resultat2);
echo $ligne2['CHEVAL'].'<br>';
echo $ligne2['HIPPO'].'<br>';
echo $ligne2['DATE'].'<br>';
echo $ligne2['JOCKEY'].'<br>';
mysql_close();
}
}
-->Message édité par hamster3553 le 26/01/2009 11:04:27<--
debutant02
le 26 janvier 2009 à 12h08
voir son profil
Re..,
Ah ! Y'a du mieux
Maintenant, il n'ya plus aucun message d'erreur.
Le petit problème restant :
Quand on choisit un item du menu déroulant, l'on revient systématiquement sur le 1er item de menu. L'affichage des données ne s'effectue pas, pourtant aucune erreur n'est signalée.
J'ai essayé de mettre assoc à la place de array : aucun effet.
Ce ne serait pas par hasard la variable $ligne ou $ligne2 que j'ai mal codée ?
Allez, bon appêtit et à bientôt.
Merci pour tout
hamster3553
le 26 janvier 2009 à 14h12
voir son profil
echo $choix n'affiche rien???
serait-il possible d'avoir le code de la page complète (après toute ces modifications) et le structure de la table car la, je ne comprend pas du tout pourquoi ca ne marche pas.
debutant02
le 26 janvier 2009 à 23h20
voir son profil
Bonsoir,
J'ai tellement bidouillé tout ça, que plus rien ne fonctionne. Je ne sais plus où j'en suis, je vois des variables partout.
D'après le manuel, le menu déroulant avec récupération et affichage de données, c'est tout bête et tout simple, sans aucune difficulté
Je vais donc tout recommencer depuis le début, tables comprises, en cas de panne persistante je reviendrai poster ici
Merci pour l'aide
A bientôt.
debutant02
le 27 janvier 2009 à 16h54
voir son profil
Bonsoir,
J'ai recommencé depuis la table (volontairement allégée pour cette phase de test à problème, du moins pour moi ) :
-----------------------------------
CREATE TABLE `monpmu01` (
`id` int(11) NOT NULL auto_increment,
`CHEVAL` VARCHAR( 20 ) NOT NULL ,
`HIPPO` VARCHAR( 20 ) NOT NULL ,
`SP` VARCHAR( 5 ) NOT NULL ,
PRIMARY KEY ( `id` )
);
----------------------------------
Ensuite la page nommée : pagemenu.php
affichant le menu déroulant pour effectuer le choix sur le cheval.
<HTML><body>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("mabase2");
// tri par cheval
echo '<p> Affichage des choix :</p>';
echo '<form method="GET" action="'.$_SERVER['PHP_SELF'].'">';
echo ' <select name="choix" id="menu">';
$resultat=mysql_query("select CHEVAL from monpmu01") or die ("Requête non executée.");
while ($ligne=mysql_fetch_array($resultat))
{
echo '<option>'.$ligne["CHEVAL"].'</option>';
}
echo '</select>';
echo '<input type="submit" value="Afficher" name="go">';
echo '</form>';
//déclaration de la variable
$choix = $_GET['choix'];
//vérification
echo $choix;
// afficher les détails
//si bouton submit cliqué
if(isset($_GET['go'])){
// verif valeur get existe.si existe pas
if(!$_GET['choix']){
exit;
}
//si existe
else{
$resultat2 = mysql_query("Select * from monpmu01 where CHEVAL=".$choix) or die ("Requête non executée.");
$ligne2 = mysql_fetch_array($resultat2);
echo $ligne2['CHEVAL'].'<br>';
echo $ligne2['HIPPO'].'<br>';
echo $ligne2['SP'].'<br>';
mysql_close();
}
}
?>
</body></html>
-----------------------------------------
Problème rencontré :
Dès l'affichage de la page, sous la fenêtre du menu déroulant apparaît le message :
undefinied variable choix in ......... ligne 26
c'est-à-dire, ici : $choix = $_GET['choix'];
Si je continue en effectuant un choix dans le menu, qui lui fonctionne et se déroule correctement, le clic sur afficher ne rend rien.
La commande echo $choix affiche le nom du cheval choisi dans le menu.
Le message d'erreur requête non exécutée s'affiche également.
J'ai relu le manuel et tenté de trouver l'erreur sur plusieurs tutos et trucs et astuces, je ne comprends pas ce qui cloche.
Si vous avez une idée, un lien, pour orienter ma recherche, par avance , merci.
A bientôt.
hamster3553
le 28 janvier 2009 à 09h33
voir son profil
Salut, voir annotations
<HTML><body>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("mabase2");
// tri par cheval
echo '<p> Affichage des choix :</p>';
echo '<form method="GET" action="'.$_SERVER['PHP_SELF'].'">';
echo ' <select name="choix" id="menu">';
$resultat=mysql_query("select CHEVAL from monpmu01") or die ("Requête non executée.");
while ($ligne=mysql_fetch_array($resultat))
{
echo '<option>'.$ligne["CHEVAL"].'</option>';
}
echo '</select>';
echo '<input type="submit" value="Afficher" name="go">';
echo '</form>';
/////////////ici tu crée une variable choix alors que ton formulaire n'est pas validé..ce qui explique l'erreur tant que le formulaire n'est pas validé -- a placer après "if(isset($_GET['go'])){" ///////////
//déclaration de la variable
$choix = $_GET['choix'];
//vérification
echo $choix;
// afficher les détails
////////////////fin de l'erreur////////////////
//si bouton submit cliqué
if(isset($_GET['go'])){
// verif valeur get existe.si existe pas
if(!$_GET['choix']){
exit;
}
//si existe
else{
//a placer ici pour que la variable $choix soit exploitable dans ta requte
$choix = $_GET['choix'];
//
//// il me semble que c'est plus correcte comme suit:
$resultat2 = mysql_query("Select * from monpmu01 where CHEVAL='".$choix."'") or die ("Requête non executée.");
$ligne2 = mysql_fetch_array($resultat2);
echo $ligne2['CHEVAL'].'<br>';
echo $ligne2['HIPPO'].'<br>';
echo $ligne2['SP'].'<br>';
mysql_close();
}
}
?>
</body></html>
-->Message édité par hamster3553 le 28/01/2009 09:34:54<--
debutant02
le 28 janvier 2009 à 10h04
voir son profil
Bonjour tout le monde,
Bonjour hamster3553,
J'ai appliqué les corrections et tout fonctionne parfaitement
En effet, pour la variable ce n'était pas logique, elle était introuvable.
Je rencontre souvent des erreurs de quotes ; encore une fois, il y en avait.
Merci hamster3553 de l'aide apportée, je vous en suis reconnaissant.
Le problème est résolu.
Je reviendrai si j'en rencontre d'autres
A bientôt