Mod Contributions lanza error Mysql en temas creados por usuarios borrados.

Started by DANIEL!, October 02, 2010, 07:13:33 PM

Previous topic - Next topic

DANIEL!

Buenas, hoy que estuve revisando post antiguos me encontre con unos de un usuario que su cuenta fue eliminada, el hecho es que cuando quiero ingresar al post me lanza el siguiente error:

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 ')
AND b.contributionsEnable
GROUP BY t.ID_MEMBER_STARTED' at line 5
Archivo: /home/xxx/public_html/Sources/Display.php
Línea: 895


Error del mod Contributions in Boards, :

Quote// Load Contributions Count in Display
   if ($modSettings['contributionsonCount'])
      {
      $request = db_query("
         SELECT
            t.ID_MEMBER_STARTED, COUNT(t.ID_TOPIC) AS contributions
         FROM {$db_prefix}topics AS t
            INNER JOIN {$db_prefix}boards AS b ON (b.ID_BOARD = t.ID_BOARD)
         WHERE t.ID_MEMBER_STARTED IN (" . implode(',', $posters) . ')
            AND b.contributionsEnable
         GROUP BY t.ID_MEMBER_STARTED'
         , __FILE__, __LINE__);

      while ($row = mysql_fetch_assoc($request))
         $context['contributions']['count'][$row['ID_MEMBER_STARTED']] = $row['contributions'];

      mysql_free_result($request);
      }

   $attachments = array();

la de rojo Esa es la linea 895 ..

MOD: http://custom.simplemachines.org/mods/index.php?mod=1587

Saludos, espero su respuesta  :)
Mi Foro http://latinozlife.com
Version: 2RC4 Patch
Tema: Ocio





lean


vicram10

creo que el mod no esta preparado para esos casos.. ya que consulta directo el ID del que posteo y en ese caso seria vacio y arrojaria error (en teoria)

por lo que la solucion seria agregar una condicional mas antes de que haga la consulta SQL

Buscar


// Load Contributions Count in Display
   if ($modSettings['contributionsonCount'])
      {
      $request = db_query("
         SELECT
            t.ID_MEMBER_STARTED, COUNT(t.ID_TOPIC) AS contributions
         FROM {$db_prefix}topics AS t
            INNER JOIN {$db_prefix}boards AS b ON (b.ID_BOARD = t.ID_BOARD)
         WHERE t.ID_MEMBER_STARTED IN (" . implode(',', $posters) . ')
            AND b.contributionsEnable
         GROUP BY t.ID_MEMBER_STARTED'
         , __FILE__, __LINE__);

      while ($row = mysql_fetch_assoc($request))
         $context['contributions']['count'][$row['ID_MEMBER_STARTED']] = $row['contributions'];

      mysql_free_result($request);
      }

   $attachments = array();


Reemplazar por


// Load Contributions Count in Display
   if ($modSettings['contributionsonCount'] && !empty($posters))
      {
      $request = db_query("
         SELECT
            t.ID_MEMBER_STARTED, COUNT(t.ID_TOPIC) AS contributions
         FROM {$db_prefix}topics AS t
            INNER JOIN {$db_prefix}boards AS b ON (b.ID_BOARD = t.ID_BOARD)
         WHERE t.ID_MEMBER_STARTED IN (" . implode(',', $posters) . ')
            AND b.contributionsEnable
         GROUP BY t.ID_MEMBER_STARTED'
         , __FILE__, __LINE__);

      while ($row = mysql_fetch_assoc($request))
         $context['contributions']['count'][$row['ID_MEMBER_STARTED']] = $row['contributions'];

      mysql_free_result($request);
      }

   $attachments = array();


no se si funciona por que ni idea como trabaja el mod, ni lo que contiene la variable $poster, pero si esa variable lo que contiene es el ID del usuario del post entonces con eso deberia de solucionarse...

y la linea que dice que esta mal en realidad es esta

QuoteWHERE t.ID_MEMBER_STARTED IN (" . implode(',', $posters) . ')

no la que pusiste en rojo.

DANIEL!

Mi Foro http://latinozlife.com
Version: 2RC4 Patch
Tema: Ocio






Advertisement: