Page 1 sur 1

Probleme requete SQL (SUM)

Posté : 21 mai 2007, 10:54
par Cork1e
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:

Posté : 21 mai 2007, 11:03
par Sékiltoyai
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.

Posté : 21 mai 2007, 11:15
par Cork1e
Merci pour rapidité :wink:
j'essaye tout de suite :D

Posté : 21 mai 2007, 11:21
par Cork1e
en effet, probléme d'alias :wink: Bien vue l'aveugle :lol:

Posté : 21 mai 2007, 11:32
par Sékiltoyai
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());

Posté : 21 mai 2007, 11:40
par zeus
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"

Posté : 21 mai 2007, 14:24
par Cyrano
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"; 

Posté : 21 mai 2007, 16:15
par Sékiltoyai
Au temps pour moi, l'alias ne dérangeait pas MySQL. :-/