JeuWeb - Crée ton jeu par navigateur
[SQL] Requête de somme - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [SQL] Requête de somme (/showthread.php?tid=5910)

Pages : 1 2


[SQL] Requête de somme - xviniette - 05-01-2012

Bonjour à tous, pour mon jeu j'ai un petit problème. J'aimerais faire la somme (SUM en SQL) d'une colonne selon une condition.

Exemple :

[Image: 120105085021906834.jpg]

Je pense que ça sera plus compréhensible.

Donc je cherche la requête SQL qui calcule la somme.
Exemple
Somme de toutes les valeurs pour id_user = 1.

Bref j'ai cherché sur internet mais je n'ai pas trouvé de réponses.

Merci de votre aide Smile !


RE: Problème requête sql somme. - keke - 05-01-2012

select SUM(valeurs) form tatable where id_user = 1

bon courage !


RE: Problème requête sql somme. - php_addict - 05-01-2012

SELECT SUM(valeurs) AS ton_alias FROM ta_table WHERE id_user=102

et tu récupère la valeur de ton_alias


RE: Problème requête sql somme. - xviniette - 05-01-2012

Merci beaucoup, je pense que j'avais déjà testé ça mais ça n'avait pas marché (je crois). Je re-testerais ce soir Smile !

En tout cas je vous remercie de votre aide.


RE: Problème requête sql somme. - xviniette - 05-01-2012

Bon j'ai toujours mon problème. Je vous passe mon "code" (oui il est dégueulasse mon code :x) !

Code :
//cherche le nom de la cible pour requete pour savoir son effectif total
$nom_cible = mysql_query("SELECT nom_user FROM carte WHERE positionx = ".$c_x." AND positiony = ".$c_y."");
//effectif total cible
$requete_somme_cible = "SELECT SUM(effectif) as effectif_tot FROM carte WHERE nom_user=".$nom_cible."";
$exec_somme_cible = mysql_query($requete_somme_cible) or die ('Erreur : '.mysql_error() );
$result_somme_cible = mysql_fetch_assoc($exec_somme_cible);
$effectif_tot_cible = $result_somme_cible['effectif_tot'];

Je pense que je fais n'importe quoi, donc j'implore votre aide.
Merci


RE: Problème requête sql somme. - niahoo - 05-01-2012

quelle est l'erreur, qu'est-ce qui ne marche pas ?


RE: Problème requête sql somme. - keke - 05-01-2012

Ta première requête renvoie-t-elle qqch ? Un simple écho devrait t'en convaincre :

$nom_cible = mysql_query("SELECT nom_user FROM carte WHERE positionx = ".$c_x." AND positiony = ".$c_y."");
echo '<br> nom cible : '. $nom_cible. '<br>' ;

Je pense que ça te donnera un premier élément de réponse (ou pas !).

kéké qui ne peut pas tester sa requête ici.


RE: Problème requête sql somme. - djidi - 05-01-2012

Es-tu sur que cette requête renvoie un résultat ?
Car si elle ne renvoie aucun résultat (= aucun utilisateur ne correspond aux positions indiquées), la requête du calcul renverra 0.

$nom_cible = mysql_query("SELECT nom_user FROM carte WHERE positionx = ".$c_x." AND positiony = ".$c_y."");

EDIT :
En fait le problème doit plutot venir du fait que tu utilises $nom_cible alors que tu n'as pas fait de mysql_fetch_assoc(); après ta première requête Wink


RE: Problème requête sql somme. - xviniette - 05-01-2012

Encore merci pour votre aide, j'ai modifié les $nom_cible pour être sûr qu'il marche en :

Code :
$requete_nom_cible = "SELECT * FROM carte WHERE positionx = $c_x AND positiony = $c_y";
$exec_nom_cible = mysql_query($requete_nom_cible);
$nom_cible = mysql_fetch_assoc($exec_nom_cible);
echo "".$nom_cible['nom_user']."<br />";

J'obtiens bien le pseudonyme voulu.

Mon erreur renvoyé par le mysql error me donne :

Erreur : Unknown column 'Array' in 'where clause'[/code]


RE: Problème requête sql somme. - Ter Rowan - 05-01-2012

Bonjour

plusieurs points m'ont marqué :
Requête 2 : si c'est un nom qui doit être dans la requête, il doit être entre quote

Requêtes 1 et 2 : dans R1 nom_cible est une ressource, dans R2 c'est un résultat (ce que dit djidi)

Après un point me chiffonne :
Citation :Mes compétences estimées dans les langages Web : J'estime avoir un bon niveau en PHP/SQL

==> je doute. Les questions que tu poses sont d'un niveau ultra débutant.

Donc soit aujourd'hui, tu n'as pas le niveau, et tu devrais revoir d'abord les fondamentaux via un site plus ouvert (genre site du zero) avant de t'attaquer au développement du moindre jeu

Sois tu as le niveau et dans ce cas, il faut te reposer, avoir les idées plus claires et chercher par toi même pour être plus autonome (il n'est pas normal qu'en ayant un bon niveau on n'arrive pas à faire une somme ou qu'on laisse passer ce type d'erreur).

Tu ne progresseras pas en nous demandant de résoudre systématiquement ce type de problème (d'autant que ce n'est pas la vocation du forum)

Tu es très certainement capable d'y arriver seul, soit avec une formation (pour acquérir le savoir nécessaire), soit avec une discipline plus poussée (pour acquérir le savoir faire nécessaire).