Page 1 sur 1

Somme dans une requete SQL While

Posté : 19 févr. 2008, 10:15
par fabien_14
Bonjour,

J'ai un petit probleme de requete, j'ai 2 requetes qui m'affiche mes défauts et ensuite le nombre de defaut, j'ai des limite avec des dates. je n'arrive pas a lui dire de faire la somme des résultats, il m'affiche chaque enregistrements les une sous les autres ...

voici mon code :
$result = mysql_query("SELECT * FROM defaut WHERE idligne = '$_POST[ligne]' ");

while ($d=@mysql_fetch_array($result)) {
//Affichage des résultats de la premiere requete
echo "$d[nom]<br>";

$result2 = mysql_query("SELECT * FROM rec WHERE idligne = '$d[idligne]'  AND iddefaut ='$d[id]'  AND date>='$date_debut' AND date<='$date_fin' ");
while ($c=@mysql_fetch_array($result2)) {
// affichage de la seconde requete en fonction de la premiere requete , ici je voudrai faire la somme des résultats.
echo "<input type=\"text\" value=\"$c[quantitedef]\" size=\"27\"><br>";
}}
Merci de votre aide.

Posté : 19 févr. 2008, 10:34
par d0m
Si tu ne veux que la somme, tu peux la faire directement dans la requête SQL :

Pour le nombre de lignes :
$requete ="SELECT COUNT(*) FROM rec WHERE idligne = '$d[idligne]'  AND iddefaut ='$d[id]'  AND date>='$date_debut' AND date<='$date_fin' "
Pour la somme des valeurs de champ :
$requete ="SELECT SUM(nom_du_champ) FROM rec WHERE idligne = '$d[idligne]'  AND iddefaut ='$d[id]'  AND date>='$date_debut' AND date<='$date_fin' "

Posté : 19 févr. 2008, 10:47
par fabien_14
Merci de ta réponse,

J'ai appliqué ce que tu m'a dit mais cela ne fonctionne pas
$result = mysql_query("SELECT * FROM defaut WHERE idligne = '$_POST[ligne]' ");

while ($d=@mysql_fetch_array($result)) {
echo "$d[nom]<br>";

$result2 = mysql_query("SELECT SUM(quantitedef) FROM rec WHERE idligne = '$d[idligne]'  $Requipe AND iddefaut ='$d[id]'  AND date>='$date_debut' AND date<='$date_fin' ");
$c=mysql_fetch_array($result2);
echo "<input type=\"text\" value=\"$c[quantitedef]\" size=\"27\"><br>";

Posté : 19 févr. 2008, 10:54
par d0m
SUM(quantitedef) n'a pas de désignation en elle même.
Elle est à l'index 0 du tableau résultat ou alors il faut lui attribuer un nom pour y accéder :

Code : Tout sélectionner

"SELECT SUM(quantitedef) as somme_quantitedef ..."
et y accéder comme suit :
$c['quantitedef']

Posté : 21 févr. 2008, 17:56
par fabien_14
Merci cela fonctionne ;)