j'ai mis à dispo la version 1.4.1, qui normalement résout ce problème...
grum a écrit:
en fait si, je pense qu'il s'agit d'un problème de version car chez moi je suis avec mysql 5.0 et je n'ai pas le problème :-)
Bonjour :-)
Ben vous dite la même chose MySql 5.0 ne fait pas partie des versions récentes :-P
en fait si, je pense qu'il s'agit d'un problème de version car chez moi je suis avec mysql 5.0 et je n'ai pas le problème :-)
Il y a plus de 3 occurences de maxValue
Pour éviter d'autre problemes par la suite, il faudrait aussi modifier minValue de la meme maniere.
-gembrot
Pour résoudre le problème, et ainsi obtenir l'affichage des cartes GMaps, c'est super simple :
il suffit simplement de remplacer les occurrences de maxValue (il y en a 3) par un autre mot qui ne soit pas un mot-clé mysql (par exemple mV) dans {PIWIGO_ROOT}/plugins/GMaps/gmaps_pip.class.inc.php
Le problème étant que l'auteur du module a utilisé un identifiant qui s’avère être un mot-clé mysql dans les version récentes.
Ça donne :
// check if there is picture with gps tag in the selected category $sql="SELECT paut.tagId, MAX(CAST(pait.value AS DECIMAL(20,17))) AS mV, MIN(CAST(pait.value AS DECIMAL(20,17))) AS minValue FROM (((".USER_CACHE_CATEGORIES_TABLE." pucc LEFT JOIN ".CATEGORIES_TABLE." pct ON pucc.cat_id = pct.id) LEFT JOIN ".IMAGE_CATEGORY_TABLE." pic ON pic.category_id = pucc.cat_id) LEFT JOIN ".$prefixeTable."amd_images_tags pait ON pait.imageId = pic.image_id) LEFT JOIN ".$prefixeTable."amd_used_tags paut ON pait.numId = paut.numId WHERE pucc.user_id = '".$user['id']."' AND (paut.tagId = 'magic.GPS.LatitudeNum' OR paut.tagId = 'magic.GPS.LongitudeNum') AND pic.image_id IS NOT NULL AND FIND_IN_SET(".$catId.", pct.uppercats)!=0 GROUP BY paut.tagId"; } elseif($catId==self::CAT_ID_TAGS and isset($page['items'])) { if(count($page['items'])==0) return(false); // 'tags' $sql="SELECT paut.tagId, MAX(CAST(pait.value AS DECIMAL(20,17))) AS mV, MIN(CAST(pait.value AS DECIMAL(20,17))) AS minValue FROM ".$prefixeTable."amd_images_tags pait LEFT JOIN ".$prefixeTable."amd_used_tags paut ON pait.numId = paut.numId WHERE (paut.tagId = 'magic.GPS.LatitudeNum' OR paut.tagId = 'magic.GPS.LongitudeNum') AND pait.imageId IN (".implode(',', $page['items']).") GROUP BY paut.tagId"; $this->category['id']=0; $this->buildMapList(0, 'C', self::ID_MODE_CATEGORY); } elseif($catId==self::CAT_ID_HOME) { // 'home' $this->category['id']=0; $this->buildMapList(0, 'C', self::ID_MODE_CATEGORY); // check if there is picture with gps tag in the selected category $sql="SELECT paut.tagId, MAX(CAST(pait.value AS DECIMAL(20,17))) AS mV, MIN(CAST(pait.value AS DECIMAL(20,17))) AS minValue FROM (((".USER_CACHE_CATEGORIES_TABLE." pucc LEFT JOIN ".CATEGORIES_TABLE." pct ON pucc.cat_id = pct.id) LEFT JOIN ".IMAGE_CATEGORY_TABLE." pic ON pic.category_id = pucc.cat_id) LEFT JOIN ".$prefixeTable."amd_images_tags pait ON pait.imageId = pic.image_id) LEFT JOIN ".$prefixeTable."amd_used_tags paut ON pait.numId = paut.numId WHERE pucc.user_id = '".$user['id']."' AND (paut.tagId = 'magic.GPS.LatitudeNum' OR paut.tagId = 'magic.GPS.LongitudeNum') AND pic.image_id IS NOT NULL GROUP BY paut.tagId";
En fait c'est pas un probleme de version puisque ca me le fait aussi avec mysql version 5.5.25
Warning: [mysql error 1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'maxValue, MIN(CAST(pait.value AS DECIMAL(20,17))) AS minValue
FROM (' at line 1
SELECT paut.tagId, MAX(CAST(pait.value AS DECIMAL(20,17))) AS maxValue, MIN(CAST(pait.value AS DECIMAL(20,17))) AS minValue
FROM (((piwigo_user_cache_categories pucc
LEFT JOIN piwigo_categories pct ON pucc.cat_id = pct.id)
LEFT JOIN piwigo_image_category pic ON pic.category_id = pucc.cat_id)
LEFT JOIN piwigo_amd_images_tags pait ON pait.imageId = pic.image_id)
LEFT JOIN piwigo_amd_used_tags paut ON pait.numId = paut.numId
WHERE pucc.user_id = '1'
AND (paut.tagId = 'magic.GPS.LatitudeNum' OR paut.tagId = 'magic.GPS.LongitudeNum')
AND pic.image_id IS NOT NULL
AND FIND_IN_SET(1, pct.uppercats)!=0
GROUP BY paut.tagId in /var/www/shanks/incrt.com/include/dblayer/functions_mysql.inc.php on line 770
grum a écrit:
javais oublié ce problème !
:-/
j'ai ouvert un bug [Bugtracker] ticket 2710
merci
javais oublié ce problème !
:-/
j'ai ouvert un bug [Bugtracker] ticket 2710
MAXVALUE existe deja dans mysql 5.1
http://dev.mysql.com/doc/refman/5.1/en/ … tions.html
MAXVALUE exists in mysql 5.1
http://dev.mysql.com/doc/refman/5.1/en/ … tions.html
Après reflexion...
Maxvalue et minvalue sont des nouveaux mot clefs utilisés dans mysql5.5
voir http://dev.mysql.com/doc/refman/5.5/en/ … range.html
Je me souviens plus très bien mais il me semble que cela à voir aussi avec le CAST...
Cela fait plusieurs mois de cela :-) ...
Je suppose que c'est lié à ta version de MySQL, chez moi je n'ai pas le soucis.
Dans la doc MySQL, je ne trouve pas d'information concernant la nécessité de mettre les alias entre guillemets :-/
Je vais continuer de chercher..
Tu risques d'avoir pas mal de problèmes, j'utilise fréquement les alias ^_^
Warning: [mysql error 1064] Erreur de syntaxe près de 'maxValue, MIN(CAST(pait.value AS DECIMAL(20,17))) AS minValue
FROM (' à la ligne 1
SELECT paut.tagId, MAX(CAST(pait.value AS DECIMAL(20,17))) AS maxValue, MIN(CAST(pait.value AS DECIMAL(20,17))) AS minValue
FROM (((gtest_user_cache_categories pucc
LEFT JOIN gtest_categories pct ON pucc.cat_id = pct.id)
LEFT JOIN gtest_image_category pic ON pic.category_id = pucc.cat_id)
LEFT JOIN gtest_amd_images_tags pait ON pait.imageId = pic.image_id)
LEFT JOIN gtest_amd_used_tags paut ON pait.numId = paut.numId
WHERE pucc.user_id = '1'
AND (paut.tagId = 'magic.GPS.LatitudeNum' OR paut.tagId = 'magic.GPS.LongitudeNum')
AND pic.image_id IS NOT NULL
GROUP BY paut.tagId in ....\include\dblayer\functions_mysql.inc.php on line 770
•Système d'exploitation: WINNT
•PHP: 5.3.10 (Montrer les informations) [2012-07-15 18:38:15]
•mysql: 5.5.20-log [2012-07-15 18:38:15]
Salut Grum
Pour d'éviter de chercher:
Pour résoudre ce pb Il faut absolument mettre les valeurs maxValue et minValue entre guillemets
AS 'maxValue' .... AS 'minValue'
ligne 371, 387 , 402 de gmaps_pip.class.inc.php
A+