Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/10/2007, 15h19   #1
Invité de passage
 
Étudiant
Inscription : septembre 2007
Messages : 9
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2007
Messages : 9
Points : 2
Points : 2
Par défaut [SQL] Fonction SUM qui ne fonctionne pas !

Bonjour à tous !

Je souhaitez récupérer l'ensemble des valeurs du prix ttc retournés par ma requête pour en faire la somme et après l'afficher dans une facture PDF ( à l'aide de la class FPDF ) !
Tout marche sauf ça... ça me retourne seulement la derniere valeur enregistrée du prix ttc et non la somme ... je vous montre mon code ce sera plus explicite :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
$req = mysql_query("SELECT SUM(prix_ttc) AS 'somme', nom, prix_ttc FROM produits GROUP BY prix_ttc LIMIT 12;") or die('Erreur de connexion '.mysql_error());

// Initialisation des 5 colonnes
$colonne_nom = "";
$colonne_qte = "";
$colonne_pu_ht = "";
$colonne_total_ht = "";
$colonne_total_ttc = "";

// Pour chaque ligne ajouter le champ à la colonne correspondante
while($donnees = mysql_fetch_array($req))
{
    $libelle = $donnees['nom'];
    $prix_ttc = $donnees['prix_ttc'];
    $pu_ht = ttc_to_ht($donnees['prix_ttc'],19.6);
	$qte = 1;
	$qte = $qte.',0';
	$total_ht = $pu_ht*$qte;
	$total_ttc = $prix_ttc*$qte;
    
    $colonne_nom = $colonne_nom.$libelle."\n";
	$colonne_qte = $colonne_qte.$qte."\n";
	$colonne_pu_ht = $colonne_pu_ht.$pu_ht.' €'."\n";
	$colonne_total_ht = $colonne_total_ht.$total_ht.' €'."\n";
    $colonne_total_ttc = $colonne_total_ttc.$total_ttc.' €'."\n";
	
	$total1 = ttc_to_ht($donnees['somme'],19.6);
	$tva = tva_from_ht($total1,19.6);
	$total2 = $donnees['somme'];
	
}
mysql_close();
J'ai mis en rouge la partie qui est censé retourner la somme, mais qui n'affiche que le dernier en enregistrement ... Voila merci de votre aide et désolé pour le dérangement si c'est une erreur bête !
nigg4z est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 15h25   #2
Membre actif
 
Avatar de Momodedf
 
Inscription : juillet 2007
Messages : 246
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juillet 2007
Messages : 246
Points : 176
Points : 176
On peut avoir la partie affichage de ton code stp ?
Parceque là tu ne fais que remplir des variables.
Momodedf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 15h32   #3
Invité de passage
 
Étudiant
Inscription : septembre 2007
Messages : 9
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2007
Messages : 9
Points : 2
Points : 2
Bien sûr tien la voila :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
$pdf->SetFont('Arial','BI',8);
$pdf->Text(158,192,$total1.' €');
$pdf->Text(158,196,$tva.' €');
 
if(!empty($total2)){
$pdf->Text(158,200,$total2.' €');
}
else { 
$pdf->Text(158,200,'0 €');
}
 
$pdf->Output();
nigg4z est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 15h36   #4
Membre confirmé
 
Inscription : mai 2006
Messages : 372
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mai 2006
Messages : 372
Points : 234
Points : 234
t'es sur de ton group by? c'est bizare un group by sur un prix

Tu a testé ta requete directement sous phpMyAdmin? elle te revoi quoi?
kahya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 15h37   #5
Membre habitué
 
Inscription : juin 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 133
Points : 125
Points : 125
Bonjour,

Moi ce que je trouve bisarre aussi c'est qu'il n'a pas d'erreur sql disant : nom ne fait pas partie de la fonction d'agrégat.
Andalor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 15h41   #6
Invité de passage
 
Étudiant
Inscription : septembre 2007
Messages : 9
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2007
Messages : 9
Points : 2
Points : 2
Non je ne suis pas sûr de mon group by, à vrai dire je débute en PHP MySql ...
Pour Andalor, non il n'ya pas d'erreur sql, juste la fonction SUM qui ne s'éxecute pas comme je le veux

PS : c'est quoi une fonction d'agrégat lol ?
nigg4z est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 15h43   #7
Membre confirmé
 
Inscription : mai 2006
Messages : 372
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mai 2006
Messages : 372
Points : 234
Points : 234
a mon avis le pb vient de la requete teste la sur phpMyAdmin jusqu'à ce que tu obtienne le bon resultat
kahya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 15h47   #8
Invité de passage
 
Étudiant
Inscription : septembre 2007
Messages : 9
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2007
Messages : 9
Points : 2
Points : 2
Je l'ai testé sous PhpMyAdmin, la colonne somme me retourne les même résultats que la colonne prix_ttc ... Y'aurai pas une histoire de COUNT la dedans ?
nigg4z est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 15h52   #9
Membre confirmé
 
Inscription : mai 2006
Messages : 372
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mai 2006
Messages : 372
Points : 234
Points : 234
non count ça compte le nombre de résultats correspondant à ta requete mais ça ne totalise pas le contenu
kahya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 15h59   #10
Membre habitué
 
Inscription : juin 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 133
Points : 125
Points : 125
Je me demandais si ce n'était pas plutôt ceci qu'il vous fallait, à savoir la somme de chaque client :

Code :
("SELECT SUM(prix_ttc) AS 'somme', nom FROM produits GROUP BY nom;")
Andalor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 15h59   #11
Invité de passage
 
Étudiant
Inscription : septembre 2007
Messages : 9
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2007
Messages : 9
Points : 2
Points : 2
OK Merci !
Donc est ce que quelqu'un aurait une solution pour que je puisse calculer la somme de tous les prix ttc retournés par ma requête et ensuite la réutiliser ??
nigg4z est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 16h05   #12
Membre confirmé
 
Inscription : mai 2006
Messages : 372
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mai 2006
Messages : 372
Points : 234
Points : 234
donc sans group by si tu les veux tous
kahya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 16h08   #13
Invité de passage
 
Étudiant
Inscription : septembre 2007
Messages : 9
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2007
Messages : 9
Points : 2
Points : 2
Non Andalor ta requête ne fonction tjrs pas, ça m'affiche encore seulement le dernier enregistreement ... :S
nigg4z est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 16h10   #14
Membre habitué
 
Inscription : juin 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 133
Points : 125
Points : 125
Au pire, vous faites 2 requêtes :

Somme Total de tout les prix de la table :

Code :
SELECT SUM(prix_ttc) AS 'somme' FROM produits
Ceci retourne un seul enregistrement :
exemple : sommme | 230


Somme des prix grouper par nom :

Code :
SELECT SUM(prix_ttc) AS 'somme', nom FROM produits GROUP BY nom
Ceci retourne autant d'enregistrement qu'il y a de nom différents dans la table :
exemple : nom | Maurice | Robert | JeanPaul | ...
sommme | 20 | 40 | 10 |....

Chaque prix pour chaque client :

Code :
SELECT prix_ttc, nom FROM produits
Ceci retourne tout les enregistrements de la table, donc on peut se retrouver avec plusieurs fois le même nom avec plusieurs prix différents (je donne pas d'exmple c'est suffisement explicite.)
Andalor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 16h15   #15
Membre habitué
 
Inscription : juin 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 133
Points : 125
Points : 125
Citation:
Envoyé par nigg4z Voir le message
Non Andalor ta requête ne fonction tjrs pas, ça m'affiche encore seulement le dernier enregistreement ... :S

Vous l'avez testé par l'intermédiaire du système de requête de phpmyadmin ? Parceque votre code doit être réadapté pour la recevoir.
Enfin si vous l'avez tester sur PhpMyAdmin, je ne comprends pas pourquoi elle ne fonctionne pas, d'autant qu'elle est directement tirée d'un cours de sql

Vous avez combien d'enregistrement dans votre table ?
Andalor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 16h20   #16
Invité de passage
 
Étudiant
Inscription : septembre 2007
Messages : 9
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2007
Messages : 9
Points : 2
Points : 2
Sayé ça fonctionne enfin

Merci Andalor, j'ai fais 2 requêtes et c'est bon c'est régler ! hihi

Bonne continuation à tous et merci du temps que vous m'avez consacré.

Peace !
nigg4z est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h15.


 
 
 
 
Partenaires

Hébergement Web