Problème de variables ?!

Invité
Invité n'ayant pas de compte PHPfrance

23 déc. 2005, 20:55

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 =)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 déc. 2005, 21:11

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']); 

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 209 Messages

23 déc. 2005, 21:44

Merci bien ça fonctionne nikel (j'avais oublié de me loguer tout à l'heure :s)