{MySQL} Problème dans mon code SQL/PHP

Fermé
Art&mis Messages postés 5 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 juin 2009 - 23 juin 2009 à 10:39
 isis59 - 23 juin 2009 à 12:57
Bonjour,
Je suis une débutante en PHP (autodidacte depuis 2 semaines) et j'ai un problème sur mon code (le même que la dernière fois, mais en plus complexe.)

Voici mon code :
<?php
	mysql_connect("localhost","root","");
	mysql_select_db("faireparts");
	
	//D'abord, le prix du papier.
		$gram=$_POST['gram'];
		$pcolor=$_POST['color'];
		$ptype=$_POST['type'];
		$marque=$_POST['marque'];
		$pformat=$_POST['format'];
		$special=$_POST['special'];
			$prix=mysql_query("SELECT MIN(PrixUnite) as 'Prix' FROM papier WHERE 'Poids' LIKE '$gram' AND 'Couleur' LIKE '$pcolor'
			AND 'Format' LIKE '$pformat' AND 'Type' LIKE '$ptype' AND 'Marque' LIKE '$marque' AND 'Special' LIKE '$special'");
				if(!$prix) die(mysql_error());
while ($row=mysql_fetch_array($prix))
{
	//echo $row['Prix']; 
	echo $prix;?> euros.<br/>
	<?php
}
	//Ensuite le ruban.
	if ($_POST['ruban']=="oui")
	{
		$rtype=$_POST['type_ruban'];
		$longueur=$_POST['longueur_ruban'];
		$epaisseur=$_POST['lg'];
			$cout_ruban=mysql_query("SELECT MIN('PrixAuMetre') as 'Rub' FROM rubans WHERE 'Type_Ruban' LIKE '$rtype' AND 'Largeur'='$epaisseur'");
			if (!$cout_ruban) die(mysql_error());
		echo "prix minimum du ruban"; echo $cout_ruban ;
	}
	//enfin l'enveloppe.
	if($_POST['enveloppe']=="oui")
	{
		$taille=$_POST['taille'];
			$cout_enveloppe=mysql_query("SELECT PrixUnitaire FROM 'enveloppe' WHERE 'taille' LIKE 'taille'");
				if (!$cout_enveloppe) die (mysql_error());
		echo $cout_enveloppe;
	}
mysql_close(); // Déconnexion de MySQL
?>


Losque je teste, avec des données qui existent, voila ce qu'il me dit
Resource id #3 euros.
prix minimum du rubanResource id #4


Je voudrais savoir ce que signifient ces Resource id, car je n'ai rien trouver dessus. Et pourriez vous m'aider à corriger mon code, s'il vous plaît ?

Merci d'avance !
A voir également:

4 réponses

giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
23 juin 2009 à 10:46
Bonjour,

à mon avis les echos ne font pas référence à des variables mais à des résultats de requêtes sous forme de tableau.

je donne un exemple sur le second :
echo $cout_enveloppe;

$cout_enveloppe contient le résultat de : $cout_enveloppe=mysql_query("SELECT PrixUnitaire FROM 'enveloppe' WHERE 'taille' LIKE 'taille'");

à la place de echo tester ceci
echo "<pre>";print_r($cout_enveloppe); echo "</ore>";
vous obtiendrez alors l'affichage du contenu du résultat de la requête qui vous donnera exactement ce qu'il faut mettre dans votre echo.
je pense que cela sera du type :
echo $cout_enveloppe[' PrixUnitaire '];
0
Art&amp;mis Messages postés 5 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 juin 2009
23 juin 2009 à 12:01
J'ai remplacé dans le code le morceau que vous m'avez indiquer. Cependant, ça m'affiche toujours "Resource id#4" a la place du résultat. Pourriez vous m'expliquer ce que signifie "Resource id" ?
Merci beaucoup.
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
23 juin 2009 à 12:53
il faut faire le remplacement aux deux endroits.
$cout_ruban=mysql_query("SELECT MIN('PrixAuMetre') as tarif ...

echo $cout_ruban['tarif'];
echo $cout_enveloppe[' PrixUnitaire '];

la ligne suivante est une instruction de trace (pour voir ce qui se passe).
echo "<pre>";print_r($cout_enveloppe); echo "</pre>";


l'affichage "Resource id#4"
indique que cette ressource ne peut être affichée avec l'instruction utilisée
une ressource est un élément d'un programme (un tableau, une variable)
0
bonjour, essayez de faire :

$prix=SELECT MIN(PrixUnite) as 'Prix' FROM papier WHERE 'Poids' LIKE '$gram' AND 'Couleur' LIKE '$pcolor'
AND 'Format' LIKE '$pformat' AND 'Type' LIKE '$ptype' AND 'Marque' LIKE '$marque' AND 'Special' LIKE '$special';

$prix2=MySql_query($prix);

et juste avant le while faites echo $prix;

normalement, les alias de colone (c'est a dire le 'Prix' ) doivent se mettrent entre double quote dans les requetes.
0