Consulta MySQL no funciona al subirlo al servidor

Iniciado por KateLibby, 12 Febrero 2013, 11:51 AM

0 Miembros y 1 Visitante están viendo este tema.

KateLibby

Hola, tengo una página en la que ejecuto esta consulta que me funciona bien en local, pero en cambio al subir la página al servidor ha dejado de funcionar. ¿Sabéis a qué podria ser debido? ¿Podría ser la subconsulta?

Código (sql) [Seleccionar]
SELECT * FROM incidencias WHERE i_idcliente IN (SELECT m_client FROM multiclient) AND i_idcliente = '123' ORDER BY i_id DESC

Gracias de antemano.

EDITO: Si quito la subconsulta y lo dejo así, sí que funciona.

Código (sql) [Seleccionar]
SELECT * FROM incidencias WHERE i_idcliente = '123' ORDER BY i_id DESC

¿Podría ser problema de la versión de PHP?

HdM

Hola.

Un poco rara la consulta ¿no? No por la sintaxis, más bien por los resultados a obtener. ¿La db del servidor posee los mismos registros en las tablas que la local, para tratar de obtener los mismos resultados?

Entiendo que cuando dices que ha dejado de funcionar, quieres decir que no trae ningún registro, ¿no?

- Nice to see you again -

EFEX

Puede que sea una version que no lo soporte, deberias preguntar en atención al cliente del server.
También podrias utilizar INNER JOIN.
GITHUB 

KateLibby

Gracias por vuestras respuestas.

Respondiendo a HdM, la base de datos del servidor no contiene exactamente los mismos registros que la base de datos en local, pero sí muy parecidos, ya que la bd local es una versión antigua de la que hay en el servidor. De todas formas he añadido un registro de prueba, y se debería mostrar con esta consulta. A mí me da la sensación de que lo que no le "gusta" es el IN.

EFEX, ¿cómo sería esta consulta utilizando un INNER JOIN? Nunca he terminado de entender muy bien cómo funciona...

HdM


- Nice to see you again -

EFEX

Cita de: KateLibby en 12 Febrero 2013, 15:16 PM
EFEX, ¿cómo sería esta consulta utilizando un INNER JOIN? Nunca he terminado de entender muy bien cómo funciona...

No se si estará correcto, puedes buscar en google sobre INNER JOIN hay muchos ejemplos para adaptarlo a lo que querés.
Código (sql) [Seleccionar]

SELECT *
FROM incidencias
INNER JOIN multiclient ON incidencias.i_idcliente = multiclient.m_client
WHERE incidencias.i_idcliente = '123'
ORDER BY i_idcliente.i_id DESC
GITHUB 

KateLibby

Hummm.... tampoco me funciona con INNER JOIN  :-(

HdM

¿Puedes explicar qué tratas de obtener con esa consulta? Si hiciste copy/paste de la query de EFEX tendrás que localizar el error que tiene.

Saludos.

- Nice to see you again -

KateLibby

#8
En la consulta quiero que se muestren las incidencias que corresponden a un cliente, siempre y cuando ese cliente se corresponda con el campo m_client de la tabla multiclient.

Pero mi problema no es si los registros que obtengo son correctos o no, sino que cuando hago la consulta en localhost obtengo resultados, y cuando lo hago desde el servidor no  :-\

Estoy pensando que... más que la versión de PHP, no podría ser que el problema venga porque la versión de MySQL del servidor es más antigua?

HdM

#9
Consulta qué versiones tiene de PHP y MySQL el server. ¿Interceptas posibles errores? ¿Si lanzas las consultas desde el PHPMyAdmin tampoco devuelve nada?

Podrías probar con ésta:

Código (sql) [Seleccionar]
SELECT incidencias.*
FROM incidencias, multiclient
WHERE incidencias.i_idcliente= multiclient.m_client
AND incidencias.i_idcliente = '123'
ORDER BY incidencias.i_id DESC


Saludos.

- Nice to see you again -