Annonce

Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

grum
2012-08-29 03:53:41

j'ai mis à dispo la version 1.4.1, qui normalement résout ce problème...

ddtddt
2012-07-29 08:37:46

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

grum
2012-07-28 23:57:22

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 :-)

Gembrot
2012-07-28 21:05:21

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

Gembrot
2012-07-28 21:03:30

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 :

Code:

      // 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";
Gembrot
2012-07-28 20:53:09

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

grum
2012-07-28 19:42:26

javais oublié ce problème !
:-/

j'ai ouvert un bug [Bugtracker] ticket 2710

Gembrot
2012-07-28 19:23:53

MAXVALUE existe deja dans mysql 5.1
http://dev.mysql.com/doc/refman/5.1/en/ … tions.html

Gembrot
2012-07-28 19:23:03
cljosse
2012-07-15 20:53:25

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

cljosse
2012-07-15 19:08:19

Je me souviens plus très bien mais il me semble que cela à voir aussi avec le CAST...
Cela fait plusieurs mois de cela :-) ...

grum
2012-07-15 18:50:40

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 ^_^

cljosse
2012-07-15 18:43:12

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+

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact