Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: KateLibby en 12 Febrero 2013, 11:51 am



Título: Consulta MySQL no funciona al subirlo al servidor
Publicado por: KateLibby en 12 Febrero 2013, 11:51 am
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
  1. 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
  1. SELECT * FROM incidencias WHERE i_idcliente = '123' ORDER BY i_id DESC

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


Título: Re: Consulta MySQL no funciona al subirlo al servidor
Publicado por: HdM en 12 Febrero 2013, 14:31 pm
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?


Título: Re: Consulta MySQL no funciona al subirlo al servidor
Publicado por: EFEX en 12 Febrero 2013, 14:33 pm
Puede que sea una version que no lo soporte, deberias preguntar en atención al cliente del server.
También podrias utilizar INNER JOIN.


Título: Re: Consulta MySQL no funciona al subirlo al servidor
Publicado por: KateLibby en 12 Febrero 2013, 15:16 pm
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...


Título: Re: Consulta MySQL no funciona al subirlo al servidor
Publicado por: HdM en 12 Febrero 2013, 15:42 pm
Este ejemplo creo que te ayudará a entender su uso  :D:

http://foro.elhacker.net/bases_de_datos/no_me_sale_inner_join_con_condicion-t358419.0.html (http://foro.elhacker.net/bases_de_datos/no_me_sale_inner_join_con_condicion-t358419.0.html)

Un saludo.


Título: Re: Consulta MySQL no funciona al subirlo al servidor
Publicado por: EFEX en 12 Febrero 2013, 16:36 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
  1. SELECT *
  2. FROM incidencias
  3. INNER JOIN multiclient ON incidencias.i_idcliente = multiclient.m_client
  4. WHERE incidencias.i_idcliente = '123'
  5. ORDER BY i_idcliente.i_id DESC
  6.  


Título: Re: Consulta MySQL no funciona al subirlo al servidor
Publicado por: KateLibby en 13 Febrero 2013, 17:44 pm
Hummm.... tampoco me funciona con INNER JOIN  :-(


Título: Re: Consulta MySQL no funciona al subirlo al servidor
Publicado por: HdM en 13 Febrero 2013, 18:06 pm
¿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.


Título: Re: Consulta MySQL no funciona al subirlo al servidor
Publicado por: KateLibby en 13 Febrero 2013, 18:12 pm
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?


Título: Re: Consulta MySQL no funciona al subirlo al servidor
Publicado por: HdM en 13 Febrero 2013, 19:22 pm
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
  1. SELECT incidencias.*
  2. FROM incidencias, multiclient
  3. WHERE incidencias.i_idcliente= multiclient.m_client
  4. AND incidencias.i_idcliente = '123'
  5. ORDER BY incidencias.i_id DESC

Saludos.


Título: Re: Consulta MySQL no funciona al subirlo al servidor
Publicado por: KateLibby en 7 Marzo 2013, 13:14 pm
Hola de nuevo y perdón por haber dejado el hilo pendiente durante tantos días, pero es que no he podido volver a mirármelo hasta ahora.

Al final desistí de hacer pruebas con versiones, consultas y demás, y corté por lo sano.

Lo que hice fue meter los resultados de la consulta que hice en el IN en un string llamado $filtro, y después crear la consulta así  :xD

Código
  1. $query = "SELECT * FROM incidencias WHERE i_idcliente = '".$_POST['filtrarclient']."' ".$filtro." ";

Solución cutre, pero funcionó  :silbar:

De todas formas os agradezco vuestra ayuda.