[RESOLU] prb local / distant

Eléphanteau du PHP | 27 Messages

18 mai 2013, 10:36

Bonjour,

C'est la première fois que ça m'arrive, une requête qui marche en local ne renvoie rien sur le serveur distant.

En local, j'ai Apache avec :
Version du client MySQL: 5.1.41
Extension PHP: mysqli

En distant :
Version du client MySQL: 4.1.25
Extensions PHP utilisées: mysql

J'imagine que le fait que le serveur distant soit en mysql4 doit induire des changements...

Voici ma requête :
SELECT SUM(flw_points.points), flw_points.user_id
FROM flw_points
INNER JOIN user
ON flw_points.user_id=user.key_id
WHERE flw_points.id_lang='$lg_cible'
GROUP BY flw_points.user_id
ORDER BY SUM(points) DESC;
$result=mysql_query($chainesql);
while($enreg =mysql_fetch_row($result)){
array_push($points_arr,$enreg[0]);
array_push($ids,$enreg[1]);
}
Y aurait-il une syntaxe nouvelle dans la version 5 qui n'est pas supportée par la 4 ? Autre chose ?
Merci,

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 mai 2013, 12:24

salut,


est ce que tu as un message d'erreur ?

as tu accès à un phpmyadmin ou directement une console mysql pour tester la requête avec une valeur en dur ?

as tu des données correspondant à la requête :)

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 27 Messages

18 mai 2013, 14:21

Salut moogli,

Oui, j'ai accès à la console phpmyadmin de mon serveur distant, et j'ai testé ma requête avec une valeur en dur. C'est dingue tous les trucs auxquels on ne pense pas quand on est seul devant son écran...

Donc, je confirme, en local, avec les même données dans la base, ça marche, mais sur le serveur distant, j'ai ce message : #1111 - Invalid use of group function

pour, donc, cette requête :
SELECT SUM( flw_points.points ) , flw_points.user_id
FROM flw_points
INNER JOIN user ON flw_points.user_id = user.key_id
WHERE user.concepteur =  '0'
AND flw_points.id_lang =  'fr'
GROUP BY flw_points.user_id
ORDER BY SUM( flw_points.points ) DESC 
LIMIT 0 , 30
Et voici ce qu'il faut faire :
SELECT SUM( flw_points.points ) AS somme, flw_points.user_id
FROM flw_points
INNER JOIN user ON flw_points.user_id = user.key_id
WHERE user.concepteur =  '0'
AND flw_points.id_lang =  'fr'
GROUP BY flw_points.user_id
ORDER BY somme DESC
Merci beaucoup !