{MySQL} Problème de requete.

Résolu/Fermé
Art&mis Messages postés 5 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 juin 2009 - 22 juin 2009 à 07:42
Art&mis Messages postés 5 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 juin 2009 - 22 juin 2009 à 09:22
Bonjour,
Je suis étudiante informatique et pour mon stage, on me demande de programmer une Web Application pour le calcul de coût de revient. J'ai un problème sur une requête SQL que je n'arrive pas à identifier. Voici mon code PHP :
<?php
mysql_connect("localhost","root","");
mysql_select_db("faireparts");
$gram=intval($_POST['gram']);
$color=$_POST['color'];
$prixpapier=mysql_query("SELECT prix(a_l'unite),fournisseur FROM papier WHERE Poids LIKE $gram AND Couleur LIKE $color");
while ($row=mysql_fetch_array($prixpapier))
{
 echo intval($row['prix(a_lunite)']);
 echo $row['fournisseur'];
}
mysql_close();
?>


et voici ce qu'il m'affiche lorsque je l'éxécute
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Web Application\Administrateur\traitement.php on line 35

(la ligne 35 est la ligne de la requête)

Pourriez vous m'aider a résoudre ce soucis ?
Merci beaucoup.

4 réponses

Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
22 juin 2009 à 08:03
Salut,

Tu devrais tester le retour de mysql_query avant de faire les fetch.
$prixpapier=mysql_query(...;
if(!$prixpapier) die(mysql_error());


Ça t'affichera l'erreur SQL.
Personnelement je ne comprends pas le 'prix(a_l'unite)' prix est une procédure stockée ?
0
Art&amp;mis Messages postés 5 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 juin 2009
22 juin 2009 à 08:58
Erreurs de débutante... prix(a_l'unite) n'existait pas. J'avais déjà remarqué que cette formulation était une fonction/procédure et j'avais donc changer le nom dans ma base de données en PrixUnite. En fait, c'était un champ de la table...
Mais j'ai un nouveau problème ! Lorsque je teste avec $color=Blanc (ce qui existe), on me dit :
Unknown column 'Blanc' in 'where clause'

J'aurais juste une question : qu'est ce que c'est que ce 'where clause' ?

Nouveau code
<?php
mysql_connect("localhost","root","");
mysql_select_db("faireparts");
$gram=$_POST['gram'];
$color=$_POST['color'];
$prixpapier=mysql_query("SELECT PrixUnite,fournisseur FROM papier WHERE Poids LIKE $gram AND Couleur LIKE $color");
if(!$prixpapier) die(mysql_error());
while ($row=mysql_fetch_array($prixpapier))
{
 echo intval($row['PrixUnite']);
 echo $row['fournisseur'];
}
mysql_close();
?>
0
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
22 juin 2009 à 09:15
il manque des guillement autour des valeurs :

$prixpapier=mysql_query("SELECT PrixUnite,fournisseur FROM papier WHERE Poids LIKE '$gram' AND Couleur LIKE '$color'");


mais pourquoi des likes et pas des égales ?
$prixpapier=mysql_query("SELECT PrixUnite,fournisseur FROM papier WHERE Poids='$gram' AND Couleur='$color'");
0
Art&amp;mis Messages postés 5 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 juin 2009
22 juin 2009 à 09:22
Ca fonctionne ! Merci beaucoup ! ^^
Pour les "like" c'est que avec égal ça ne marchait pas, et en plus, j'ai tout déclarer en texte, donc voila.
Merci milles fois encore pour ton aide.
0