Probleme requete SQL (SUM)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme requete SQL (SUM)

par Sékiltoyai » 21 mai 2007, 16:15

Au temps pour moi, l'alias ne dérangeait pas MySQL. :-/

par Cyrano » 21 mai 2007, 14:24

En attendant, l'erreur est ici :
$sql2 = "SELECT SUM(A) As A,
SUM(B) As B,
SUM(C) As C,
SUM(D) As D,
SUM(E) As E,
SUM(F) As F,
SUM(G) As G,
SUM(H) As H,
SUM(I) As I,
SUM(J) As J,
SUM(K) As K,
SUM(L) As L,
SUM(M) As M,
SUM(N) As N,
SUM(O) As O,
SUM(P) As P,
SUM(Q) As Q,
SUM(R) As R,
SUM(S) As S,
SUM(T) As T,
SUM(U) As U,
SUM(V) As V,
SUM(W) As W,
SUM(X) As X,
SUM(Y) As Y,   <<=========== Virgule en trop, après la dernière colonne appelée, avant le FROM
FROM t_graphique"; 

par zeus » 21 mai 2007, 11:40

J'apporte tout de même un avertissement, à l'utilisation de MySQL_NUM : si tu désires rajouter un champ dans ton SELECT, il te faudra soit le mettre en dernier, soit réorganiser les numéro dans ton code de récupération.
Après, je dis ça parce que j'essaye de faire un select "logique", ce qui n'est pas le cas de tout le monde. Je préfère transformer

Code : Tout sélectionner

SELECT SUM(A), SUM(B), SUM(C) FROM table
en

Code : Tout sélectionner

SELECT SUM(A), SUM(A1) SUM(B), SUM(B1) SUM(C) FROM table
que en

Code : Tout sélectionner

SELECT SUM(A), SUM(B), SUM(C), SUM(A1), SUM(B1) FROM table
La solution que je te conseillerais, c'est d'utiliser des noms parlants. "SUM(A) AS sum_A"

par Sékiltoyai » 21 mai 2007, 11:32

Les erreurs SQL sont pas forcément visibles au premier coup d'oeil, donc quand tu utilises mysql_query(), mets une gestion des erreurs derrière. Le plus courant, c'est de mettre

Code : Tout sélectionner

$result = mysql_query() or die(mysql_error());

par Cork1e » 21 mai 2007, 11:21

en effet, probléme d'alias :wink: Bien vue l'aveugle :lol:

par Cork1e » 21 mai 2007, 11:15

Merci pour rapidité :wink:
j'essaye tout de suite :D

par Sékiltoyai » 21 mai 2007, 11:03

A mon avis, tu as une erreur SQL dans ta requète, et qui vient à mon avis de la :

Code : Tout sélectionner

SUM(A) As A
Il doit te mettre une erreur parce que tu essayes d'utiliser un nom de table pour un alias, il faut utiliser un autre nom pour ton alias.

Ce que tu peux faire, c'est supprimer les alias et utiliser
mysql_fetch_array($res2, MYSQL_NUM);
pour récupérer les enregistrements sous la forme que tu désirais.

Probleme requete SQL (SUM)

par Cork1e » 21 mai 2007, 10:54

Bonjour tout le monde :wink:
Voilà mon proléme:
Ma requete
Image

Mon code
$sql2 = "SELECT SUM(A) As A,
SUM(B) As B,
SUM(C) As C,
SUM(D) As D,
SUM(E) As E,
SUM(F) As F,
SUM(G) As G,
SUM(H) As H,
SUM(I) As I,
SUM(J) As J,
SUM(K) As K,
SUM(L) As L,
SUM(M) As M,
SUM(N) As N,
SUM(O) As O,
SUM(P) As P,
SUM(Q) As Q,
SUM(R) As R,
SUM(S) As S,
SUM(T) As T,
SUM(U) As U,
SUM(V) As V,
SUM(W) As W,
SUM(X) As X,
SUM(Y) As Y,
FROM t_graphique";
$res2 = mysql_query($sql2,$link);
$row2=mysql_fetch_array($res2);

>> Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\dev_web\easyphp1-8\www\web\pareto3.php

Ma question est, comment faire pour stocker dans un tableau le résultat de ma requete (par exemple: $tableau[0] = 10, $tableau[1 = 25 etc...)
Merci pour votre réponse :wink: