(php-mysql) Undefined variable help

Fermé
surfeur97220 Messages postés 3 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 24 février 2009 - 24 févr. 2009 à 13:25
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 24 févr. 2009 à 20:48
Bonjour,
sur une meme page j'ai un formulaire qui compend à la fois un menu déroluant, faisant appel aux valeurs d'une table pour faire sa liste. et deux champs à compléter par l'utilisateur.
normalement en appuyant sur valider, le formulaire devrait utiliser la valeur sélectionnée dans la liste déroulante pour se connecter à la table correpondante et y inscrire les données des deux champs dans cette table.
mais j'ai le message d'erreur suivant:
Undefined index: choix in .... on line 58
Undefined index: choix in .... on line 69
J'imagine donc que le choix dans la liste n'a pas été pris en compte.
Je ne voi pas l'erreur dans mon script... quelqu'un pourrait il m'éclairer.
voici le code en question, sachant que la valeur $choix correspond à la liste et $ajouprix et $ajoumag son ceux des champs.:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>observatoire populaire des prix martinique-conso</title>
<style type="text/css">
<!--
.Style3 {
	font-family: Georgia, "Times New Roman", Times, serif;
	font-weight: bold;
	font-size: 18px;
}
-->
</style>
</head>

<body>
<?php

// --------------- Etape 1 -----------------
// Si un message est envoyé, on l'enregistre
// -----------------------------------------
 
if (isset($_POST['test']))
{
   if ($_POST['test'] != NULL) // Si on a quelque chose à enregistrer
    {
     mysql_connect("localhost", "root", ""); // Connexion &agrave; la base de donn&eacute;es. 
     mysql_select_db("observatoire"); // S&eacute;lection de la base client. 
    $test = mysql_real_escape_string(htmlspecialchars($_POST['test'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité


 
    // On peut enfin enregistrer :o)
	    
    mysql_query("INSERT INTO produits VALUES('', '" . $test . "')");
 	mysql_query('CREATE TABLE ' . $test . ' ( id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY,  prix DECIMAL( 5, 2 ) NOT NULL,  magasin TEXT NOT NULL)') or die(mysql_error());

	
	}
}

if (isset($_POST['choisir']))
{
   if ($_POST['choisir'] != NULL)
   {
    $choix = mysql_real_escape_string(htmlspecialchars($_POST['choisir']));
	}
}	

if (isset($_POST['ajoumag']))
{
   if ($_POST['ajoumag'] != NULL) // Si on a quelque chose à enregistrer
    {
     mysql_connect("localhost", "root", ""); // Connexion &agrave; la base de donn&eacute;es. 
     mysql_select_db("observatoire"); // S&eacute;lection de la base client. 
    $ajoumag = mysql_real_escape_string(htmlspecialchars($_POST['ajoumag']));
    mysql_query('INSERT INTO ' . $choix . ' VALUES(\'\', \'\', \'' . $ajoumag . '\')');
	}
}

if (isset($_POST['ajouprix']))
{
   if ($_POST['ajouprix'] != NULL) // Si on a quelque chose à enregistrer
    {
     mysql_connect("localhost", "root", ""); // Connexion &agrave; la base de donn&eacute;es. 
     mysql_select_db("observatoire"); // S&eacute;lection de la base client. 
    $ajouprix = mysql_real_escape_string(htmlspecialchars($_POST['ajouprix']));
    mysql_query('INSERT INTO ' . $choix . ' VALUES(\'\', \'' . $ajouprix . '\', \'\')');
	}
}

?>
 

<table width="200" height="318" border="1" align="left">
  <tr>
    <td bordercolor="#0000FF" bgcolor="#FF9933"><div align="center">
      <?php 

mysql_connect("localhost", "root", ""); // Connexion &agrave; la base de donn&eacute;es. 
mysql_select_db("observatoire"); // S&eacute;lection de la base client. 
echo 'Veuillez choisir un article';
echo "<br />";
?>
      <form method="post" action="test14.php">    
      <select name="choisir" id="choisir">
        <?php 
$retour = mysql_query("SELECT * FROM produits") or die(mysql_error());
while($donnees = mysql_fetch_assoc($retour)){

     echo '<option value="'.$donnes['choix'].'">'.$donnees['nom'].'</option>';

}
?>
	  </select>

	  	  
      <br />
    </div>

        <p align="center">Veuillez saisir le prix relev&eacute;<br />
          Exemple: 2.5 <br />
          <input name="ajouprix" type="text" value="" size="8" maxlength="6" />
        </p>
        <p align="center">Veuillez sasir le magasin<br />
          Exemple: Hyper U Galleria<br />
		  <input name="ajoumag" type="text" value="" maxlength="50" />
          <br />
          <br />
          <input name="submit" type='submit' value='Valider' />
        </p>
        <p align="center">Votre article n'apparait  pas dans la liste?<br />
          Cr&eacute;ez le
</p>
      </form></td>
  </tr>
</table>
  <table width="80" height="290" border="0" align="left">
    <tr>
      <td><div align="left"></div></td>
    </tr>
  </table>
  <table width="340" height="331" border="1">
  <tr>
    <td height="325" bordercolor="#0000FF" bgcolor="#FF9933">
	<form method="post" action="test14.php">
      <p align="center" class="Style3"><u>Cr&eacute;ation d'un nouvel article </u></p>
      <p align="center">R&egrave;gle de saisie: <br />
        Le format devra toujours &ecirc;tre:<br />
      Type de produit - marque - quantit&eacute;<br />
      <br />
      Exemples:<br />
      Fromage-vache qui rit-8 portions<br />
      Lait demi &eacute;cr&eacute;m&eacute;-gandia-1L<br />
      Boisson-coca cola-2L<br />
      Eau-chanflor-1.5L
</p>
      <p align="center">-------------------<br />
Prenez soin de donner les informations<br />
n&eacute;cessaires &agrave; l'identification du produit.<br />
      L'article cr&eacute;&eacute; apparaitra automatiquement<br />
      dans la liste de gauche. <br />
      -------------------<br />
        <br />
        <input name="test" type="text" size="50" maxlength="50" />
        <br />
        <br />
        <br />
        <input name="valider" type='submit'
		onclick="setTimeout('recharge()', 1000);"
		value='Cr&eacute;er article' />
      </p>
      </form></td>
  </tr>
</table>
</body>
</html>
A voir également:

6 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 févr. 2009 à 13:34
Bonjour,

echo '<option value="'.$donnes['choix'].'">'.$donnees['nom'].'</option>';


'choix' correspond içi à un champ de ta table produits , est ce qu'il se nomme bien ainsi ?

Galleria c'est F.de F. ?
0
surfeur97220 Messages postés 3 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 24 février 2009
24 févr. 2009 à 13:38
Salut, oui c'est bien à fdf.
tu es de la Martinique ?
tu viens de me donner une information capitale.
donc en fait je dois remplacer choix par nom
car effectivement choix n'existe pas dans a table mais s'appelle nom.
j'essaye ça et je te tiens au vourant
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 févr. 2009 à 13:42
Non pas de F D F , je suis dans le froid de la métropole, mais j'ai fait pas mal de voyages la bas et bien apprécié l'ile. (et ses habitants)
0
surfeur97220 Messages postés 3 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 24 février 2009
24 févr. 2009 à 13:45
ah ok, c sympat, tu sais qu'on est en pleine greve générale en ce moment?
bon voila j'ai fait cette modif:
echo '<option value="'.$donnes['nom'].'">'.$donnees['nom'].'</option>';
car la table produits contient deux champs: id et nom.
mais voila, j'ai toujours le meme problème, ça n'y a rien changé.
franchement je suis désespéré, je n'arrive pas a comprendre pourquoi la variable choix n'est pas défini.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 févr. 2009 à 17:45
Re,

moi non plus je ne vois pas pourquoi il y a un pb avec l'index choix, vu qu'il n'y est plus dans ta page.

Peux tu me remettre le code tel que tu l'as modifié ?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 févr. 2009 à 20:48
je t'ai mis un MP
0