Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 27/05/2007, 11h29   #1
Invité de passage
 
Inscription : mai 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 26
Points : 2
Points : 2
Par défaut [SQL] Undefined variable: prixprod

Voila j'ai cette erreur quand je veux passer une commande.

Voila la partie qui pose probleme:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Affectation des valeurs saisies dans des variables
 
		        $codeprod=$_GET['produit_choisi'];
			$nomprod=$_GET['libprod'];
			$numcl=$_GET['numcl'];
			$qte=$_GET['qte'];
 
       //recuperation du Prix Prouit
                        $sql="SELECT prixprod FROM produit WHERE prixprod='$prixprod'";
                        $res=mysql_query($sql) or die(mysql_error());
                        $data=mysql_fetch_assoc($res);
                        $prixprod=$data['prixprod'];      
 
        // Requête d'insertion des valeurs dans la table COMMANDE
		$reqC = "INSERT INTO commande VALUES('','$qte','$prixprod', '', '$nomprod','','$numcl','$codeprod')";
klue_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2007, 11h53   #2
Membre confirmé
 
othmane bentalha
Inscription : mai 2006
Messages : 257
Détails du profil
Informations personnelles :
Nom : othmane bentalha
Âge : 25

Informations forums :
Inscription : mai 2006
Messages : 257
Points : 228
Points : 228
Avant ta 1ère requête SQl tu n'as pas déclaré ou tu n'as pas récupéré la variable prixprod. C'est normal qu'elle est indéfini.
Code :
1
2
 
$prixprod=$_GET['prix'];
othmane126 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2007, 12h05   #3
Invité de passage
 
Inscription : mai 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 26
Points : 2
Points : 2
oui j'ai trouvé ça marche ^^
bon maintenant j'ai un autre problème, quand je sélectionne un produit dans un formulaire il me prend par défaut que le premier produit et pas le second.

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<html>
<title>Commande de produits</title>
<head>
 
</head>
 
<body>
 
		 <form id="selectionner" method="POST" action="transfert_cmde.php">
			<table border="3">
				<!--  génération dyamique du tableau  avec les lignes de la table  produit -->	  
				<?php
 
					$connexion = mysql_pconnect( "localhost", "root", "root");
				        mysql_select_db ( "fringues", $connexion);					
					$lignes = mysql_query(  "SELECT * FROM produit");
 
					echo '  <tr>
								<th>Aperçu du produit</th>
								<th>Nom du produit</th>
								<th>Prix TTC ( en € )</th>
								<th>Quantité</th>
								<th>Action</th>
							</tr>';	
 
					while ( $prod = mysql_fetch_object($lignes) )
						{
							echo '  <tr>
										<th><img src="'.$prod->imageprod.'"  height="96px" 
 
width="64x"  /></th>
										<th>'.$prod->libprod.'</th>
										<th>'.$prod->prixprod.'</th>
										<th> <select name="qte">
												<option value="1">1</option>
												<option value="2">2</option>
												<option value="3">3</option>
												<option value="4">4</option>
												<option value="5">5</option></th>
										<th> <input type="checkbox" value="'.
											$prod->codeprod.'" name="codeprod" checked="checkbox" 
 
/> </th>
									</tr>';	
						}
						echo  '<input type="hidden" name="libprod" value="'.$prod->libprod.'"/>';
						echo  '<input type="hidden" name="prixprod" value="'.$prod->prixprod.'"/>';
						echo  '<input type="hidden" name="codeprod" value="'.$prod->codeprod.'"/>';
 
				?>				 
			</table>
 
 
		Saisissez votre numéro client :
		<input type="text" name="numcl"/>	
		<br />
		<input type="submit" value="Envoyer"/>
 
 
		</form>
</body>
</html>
Voila le code..et j'aimerais savoir comment faire si aucun produit n'a été sélectionné et/ou le code client est invalide par rapport au nom du client, pour qu'il affiche un message mauvais code client/aucun produit n'a été sélectionné.

Voila mon code pour le transfert:

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<html>
	<head>
		<title>Validation du choix de l'article</title>
	</head>
<body>
        <?
 
	// Ouverture de la base fringues
	$connexion = mysql_pconnect( "localhost", "root", "root");
	mysql_select_db ( "fringues", $connexion);
 
 
	// Affectation des valeurs saisies dans des variables
 
		        $codeprod=$_POST['codeprod'];
			$nomprod=$_POST['libprod'];
			$numcl=$_POST['numcl'];
			$qte=$_POST['qte'];
                        $prixprod=$_POST['prixprod'];
 
        //recuperation du Prix Prouit
                        $sql="SELECT prixprod FROM produit";
                        $res=mysql_query($sql) or die(mysql_error());
                        $data=mysql_fetch_assoc($res);
                        $prixprod=$data['prixprod'];      
 
       //recuperation du Libéllé produit
                        $sql="SELECT libprod FROM produit";
                        $res=mysql_query($sql) or die(mysql_error());
                        $data=mysql_fetch_assoc($res);
                        $nomprod=$data['libprod'];
 
       //recuperation du Code Produit
                        $sql="SELECT codeprod FROM produit";
                        $res=mysql_query($sql) or die(mysql_error());
                        $data=mysql_fetch_assoc($res);
                        $codeprod=$data['codeprod'];                                  
 
        // Requête d'insertion des valeurs dans la table COMMANDE
		$reqC = "INSERT INTO commande VALUES('','$qte','$prixprod', '', '$nomprod','','$numcl','$codeprod')";
 
        // Exécution de la requête
			mysql_query($reqC) or die("erreur".mysql_error());
 
 
 
        // Fermeture de la connexion à MySQL
			mysql_close();
         echo 'Votre commande a bien été enregistrée !';
	?>
	<br />
	<br />
 
	<a href="accueil3.php">Retour a la page précedente</a>
</body>
</html>
Merci d'avance
klue_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2007, 12h50   #4
Membre confirmé
 
othmane bentalha
Inscription : mai 2006
Messages : 257
Détails du profil
Informations personnelles :
Nom : othmane bentalha
Âge : 25

Informations forums :
Inscription : mai 2006
Messages : 257
Points : 228
Points : 228
1.Tout d'abord pour les checkbox, tu les a donné le même nom il faut que soit tu les donne des noms différents ou tu les déclare comme des cases d'un tableau
Code :
1
2
 
<th> <input type="checkbox" value="'.$prod->codeprod.'" name="codeprod[]" checked="checkbox"
Et après tu les récupère à l'aide d'une boucle où tu identifie chaque caseà cocher par son numèro commençant par 0 et tu test si elle est coché ou non. Exemple

Code :
1
2
3
4
5
6
7
8
9
10
11
12
]<?php
$codes=$_POST['codeprod'];
$nb=count($codes);
   for ($i=0; $i>=$nb; $i++)
          {
if ($codes[$i]<>'')
     {
//Donc ce produit été choisi et tu fais tes traitement
....
     }
          }
?>
2.Pour la récupération des valeurs du formulaires et l'extraction des donnée de la base, je vois que tu extrait de la base tous les enregistrements sans conditions
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//recuperation du Prix Prouit
                        $sql="SELECT prixprod FROM produit where codeprod=\"$code\"";                        $res=mysql_query($sql) or die(mysql_error());
                        $data=mysql_fetch_assoc($res);
                        $prixprod=$data['prixprod'];      
	
       //recuperation du Libéllé produit
                        $sql="SELECT libprod FROM produit where codeprod=\"$code\"";" ;                        $res=mysql_query($sql) or die(mysql_error());
                        $data=mysql_fetch_assoc($res);
                        $nomprod=$data['libprod'];
 
       //recuperation du Code Produit
                        $sql="SELECT codeprod FROM produit where codeprod=\"$code\"";";                        $res=mysql_query($sql) or die(mysql_error());
                        $data=mysql_fetch_assoc($res);
                        $codeprod=$data['codeprod'];
Et je crois que tu peux les rassembler on une seule requête
Code :
1
2
3
 
$resultat=mysql_query("SELECT * FROM produit WHERE codeprod=\"$code\"");
$ligne=mysql_fetch_array($resultat);
othmane126 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2007, 13h43   #5
Invité de passage
 
Inscription : mai 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 26
Points : 2
Points : 2
J'avoue que je comprend vraiment pas l'affectation du choix du produit..
de meme lorsque j'envoie le produit sléctionné ça me prend en compte la quantité d'une deuxième valeur et le libélé du premier produit dans le tableau.
klue_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h37.


 
 
 
 
Partenaires

Hébergement Web