Page 1 sur 1

Petit Erreur SQL

Posté : 24 juil. 2011, 16:12
par MorgJ7
Bonjour a tous , je voulais avoir un petit coup concernant ce bout de code .

Code : Tout sélectionner

if ($sold!=0) { connectMaBase(); $req=mysql_query("SELECT Nombre FROM fiche WHERE Produit='$t4'"); while($data = mysql_fetch_array($req)){ $nb=''.$data['Nombre'].''; echo''.$nb.''; echo''.$t1.''; $nomb=($nb+$t1); echo''.$nomb.''; } $req=mysql_query("SELECT Solde FROM fiche WHERE Produit='$t4'"); while($data = mysql_fetch_array($req)){ $sol=''.$data['Solde'].''; echo''.$sol.''; echo''.$t3.''; $u=($t1*$t3); echo''.$u.''; } $sql= ('SELECT Sum(Quantite) as Quantite FROM stockage WHERE Produit=\''.$t4.'\' && Etat="Vente"'); $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); while($data = mysql_fetch_array($req)){ $moins=''.$data['Quantite'].''; echo''.$moins.''; $h=($nomb-$moins); echo''.$h.''; $m=($nb-$moins); echo''.$m.''; $p1=($sol/$nb); $e=($m*$p1); echo''.$e.''; $solde=(($e+$u)/($h)); echo"'.$solde.'"; mysql_free_result ($req); } $sql = 'UPDATE fiche SET Solde="'.mysql_real_escape_string($solde).'",Houz="'.mysql_real_escape_string($h).'" WHERE Produit="'.mysql_real_escape_string($t4).'"'; mysql_query ($sql) or die('Erreur SQL ! '.$sql.'<br/>'.mysql_error()); echo''.$sql.''; mysql_close(); }
Les tests echo se passent convenablement , les données sont mis à niveau correctement , je poste ici car j'ai recu un erreur bizarre . Au niveau de :
Code : PHP - Sélectionner

Code : Tout sélectionner

$sql= ('SELECT Sum(Quantite) as Quantite FROM stockage WHERE Produit=\''.$t4.'\' && Etat="Vente"'); $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
La valeur de la somme est recu correctement , tout est normal mais on me donne un erreur :

Warning: mysql_fetch_array(): 8 is not a valid MySQL result resource in "$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());"

Pourtant aucun 8 n est associé a mon calcul .

pouvez vous s il vous plait de main m' aider un peu?

Re: Petit Erreur SQL

Posté : 24 juil. 2011, 18:14
par Ryle
Le 8 est sans doute la référence de la ressource mysql... ton problème provient d'une requête sql erronnée, chose que devrait t'indiquer le mysql_error.

En SQL la condition ET s'écrit "AND" et non pas "&&", qui correspond à un "et" en php ;)

Re: Petit Erreur SQL

Posté : 25 juil. 2011, 09:22
par MorgJ7
C est resolu , le AND est necessaire a etre remplacer et mysql_free_result ne devrait pas etre dans le while ...

Re: Petite erreur SQL

Posté : 27 juil. 2011, 09:13
par sirakawa
Je ferai une fois de plus la même remarque :
face à une erreur ??ql (mysql, sqlite3..) :
1) inutile de chercher à comprendre le message d'erreur de PHP.
2) faire afficher la requête :
print "<br>==>$requete<==<br>"; die(); //<br>==> pour bien isoler la requête
3) vérifier que la requête contient bien le texte qu'on pense
==== si oui
  • 1)copier la requete et
    2) la coller soit dans mysql en ligne soit dans phpmyadmin soit dans sqlite manager de Firefox suivant la BDD qu'on utilise
    3) les commentaires sont un peu plus explicites et, surtout, on peut modifier la requête, en particulier en la réduisant jusqu'à retrouver qqch qui fonctionne, puis en la développant progressivement, et voir le résultat
.
===== si non corriger la requete