Page 1 sur 1

Problème de variables ?!

Posté : 23 déc. 2005, 20:55
par Invité
Salut tout le monde,

J'ai un while principal qui me permet de faire un affichage du numéro de cadeau et de garder ce numéro en paramètre. Seulement j'ai besoin de faire un autre while pour aller chercher le prix total du cadeau (composé de plusieurs articles en quantités différentes).

J'utilise des mysql_fetch_assoc, je sais pas si c'est à cause de ça, toujours est-il que cette erreur ci :
Notice: Use of undefined constant prixUnitaire - assumed 'prixUnitaire' in c:\program files\easyphp1-8\www\liste de mariage\admin\liste_hotesse.php on line 59
s'affiche 4 fois (soit une fois par cadeau dans la bdd).

J'utilise easyphp 1.8, le problème vient peut-être de là je ne sais pas.

Voici mon code
<center>
	<h1>Liste des Hôtesses<h1><br />

	<table width='100%'>
		<tr>
			<td class='basdepage'><font color='#EAEDB5'>Numéro</font></td>
		<?php

			if (!isset($_REQUEST['tri']))
				$_REQUEST['tri']='numHotesse';

			echo "
			<td class='basdepage'><a href='accueil_admin.php?page=liste_hotesse&tri=nom' class='lien'>Nom</a></td>
			<td class='basdepage'><a href='accueil_admin.php?page=liste_hotesse&tri=prenom' class='lien'>Prénom</a></td>
			<td class='lien'>Nombre de Mariages</td>
			<td class='lien'>Chiffre d'affaire</td>
		</tr>
			";

			$bde=mysql_connect("localhost","mariage","mariage") or die ("Impossible de se connecter à la base");
			mysql_select_db("listedemariage") or die ("Impossible d'accéder à la base");
			$req=mysql_query("select * from hotesse order by ". $_REQUEST['tri'] ."");

			$i=1;
			while($ligne=mysql_fetch_assoc($req))
			{
				$ca = 0;
				echo "

					<tr align='center'>
						<td class='basdepage'>$ligne[numHotesse]</td>
						<td class='basdepage'><a href='accueil_admin.php?page=hotesse&hotesse=$ligne[numHotesse]' class='film'>$ligne[nom]</a></td>
						<td class='basdepage'><a href='accueil_admin.php?page=hotesse&hotesse=$ligne[numHotesse]' class='film'>$ligne[prenom]</a></td>
					";

				$req2=mysql_query("select count(*) from listedemariage where numHotesse = $ligne[numHotesse];");
				echo "
						<td class='basdepage'>". mysql_result($req2, 0) ."</td>

					";

				$req3=mysql_query("select numListe from listedemariage where numHotesse=$ligne[numHotesse];");

				while($ligne3=mysql_fetch_array($req3))
				{
					$req4=mysql_query("select numCadeau from cadeau where numListe = $ligne3[numListe];");

					while($ligne4=mysql_fetch_array($req4))
					{
						$req5=mysql_query("
							select c.quantite, a.prixUnitaire
							from composer c, article a
							where c.numCadeau = $ligne4[numCadeau]
							and c.codeArticle = a.codeArticle;
							");

						while($ligne5=mysql_fetch_array($req5))
						{
							$prixCadeau = $ligne5[prixUnitaire] * $ligne5[quantite];
							$ca = $ca + $prixCadeau;
						}
					}
				}

				echo "<td class='basdepage'>$ca</td></tr>";
				$i++;
			}

			mysql_close();
		?>
	</table>
</center>
Merci d'avance =)

Posté : 23 déc. 2005, 21:11
par Truc
Salut,
Use of undefined constant prixUnitaire
donc tu utilise une constant qui n'est pas initialisée... du moins le code est interprété tel quel.

il faut ajouter des quotes pour l'index,remplace:
$ligne5[prixUnitaire]
par
$ligne5['prixUnitaire']
de meme pour toutes les variables résultatnt d'une exécution de requete.

Le mieux serai aussi de sortir les variables du reste de la chaine de caratère:
$req2=mysql_query("select count(*) from listedemariage where numHotesse =". $ligne['numHotesse']); 

Posté : 23 déc. 2005, 21:44
par Shenryu
Merci bien ça fonctionne nikel (j'avais oublié de me loguer tout à l'heure :s)