Foros del Web » Programando para Internet » PHP »

Duda con consulta. En myphpadmin funciona, en php falla

Estas en el tema de Duda con consulta. En myphpadmin funciona, en php falla en el foro de PHP en Foros del Web. Hola a todos, Gracias de antemano por vuestra ayuda. Tengo una consulta mysql que cuando la ejecuto en myphpadmin en local funciona sin problemas, cuando ...
  #1 (permalink)  
Antiguo 07/06/2013, 10:17
 
Fecha de Ingreso: junio-2013
Mensajes: 5
Antigüedad: 11 años, 5 meses
Puntos: 0
Duda con consulta. En myphpadmin funciona, en php falla

Hola a todos,

Gracias de antemano por vuestra ayuda.

Tengo una consulta mysql que cuando la ejecuto en myphpadmin en local funciona sin problemas, cuando la ejecuto en myphpadmin en remoto funciona sin problemas, sin embargo el php en el que se encuentra sale en blanco cuando están en remoto y sale perfecto cuando está en local.
Además tengo comprobado que cuando abro el php que está en el navegador sale pagina en blanco, entonces abro myphpadmin remoto, ejecuto la consulta que está dentro del php, se ejecuta sin problemas, refresco el navegador con el php en blanco en entonces funciona. Es como si tuviese que ejecutarla primero vía myphpadmin para que entonces el php ya funcione.

Otra cosa que he comprobado es que si quito el ORDER BY del final, el php funciona. Si no lo quito no.

La consulta con el ORDER BY en el php:

Código PHP:
mysql_select_db($database_conexion$conexion);
$query_rproductes "SELECT nombre_producto, codigoint, categoria, subcategoria, (COALESCE(comprados,0)-COALESCE(vendidos,0)) as stock FROM productos a 
LEFT JOIN categorias ON a.cat_producto=categorias.id_categoria 
LEFT JOIN subcategorias ON a.subcat_producto=subcategorias.id_subcategoria 
LEFT JOIN (SELECT producto_detalle, SUM(cant_detalle) as vendidos FROM detpedidos GROUP BY producto_detalle) v ON a.id_producto=v.producto_detalle 
LEFT JOIN (SELECT num_producom, SUM(cant_com) as comprados FROM detcompras GROUP BY num_producom) c ON a.id_producto=c.num_producom 
ORDER BY a.nombre_producto"
;
$rproductes mysql_query($query_rproductes$conexion) or die(mysql_error());
$row_rproductes mysql_fetch_assoc($rproductes);
$totalRows_rproductes mysql_num_rows($rproductes); 
Se os ocurre algo?

Muchas Gracias.
  #2 (permalink)  
Antiguo 07/06/2013, 11:04
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años, 6 meses
Puntos: 43
Respuesta: Duda con consulta. En myphpadmin funciona, en php falla

Hola que tal,

No será que esta tardando la ejecución y por eso es que no imprime nada ya que veo tienes left joins y subconsultas. Además fíjate si la conexión es persistente o no en el mysql.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 07/06/2013, 11:25
 
Fecha de Ingreso: junio-2013
Mensajes: 5
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Duda con consulta. En myphpadmin funciona, en php falla

Hola, Gracias por contestar.

No creo que sea eso porque una vez que ejecuto la consulta directamente en myphpadmin ya no tengo problemas en el php, que a partir de ese momento ya funciona sin problemas.

La verdad es que no sé por donde tirar...
  #4 (permalink)  
Antiguo 07/06/2013, 11:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Duda con consulta. En myphpadmin funciona, en php falla

¿Y cuando la ejecutas mysql_error() no dice nada útil?

Es decir, ¿no ocurre un error que se muestre?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 07/06/2013, 11:31
 
Fecha de Ingreso: junio-2013
Mensajes: 5
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Duda con consulta. En myphpadmin funciona, en php falla

Cuando ejecuto la consulta en myphpadmin se ejecuta sin problemas, sin errores.

Cuando la ejecuto en php en el servidor remoto sólo aparece pantalla en blanco. He probado todo lo que he encontrado en la red para que muestre errores y no muestra ninguno. Sólo página en blanco.

Cuando la ejecuto en php en servidor local se ejecuta sin problemas, sin errores.

Si elimino el ORDER BY del final de la consulta se ejecuta también en todas partes sin problemas, pero vamos no entiendo por qué un simple ORDER BY hace que el php ya no se ejecute en el servidor remoto.
  #6 (permalink)  
Antiguo 07/06/2013, 11:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Duda con consulta. En myphpadmin funciona, en php falla

No es problema de PHP, porque no tienes errores de código ni sintaxis.

La consulta es la que está mal, y no es un problema de PHP, no es su culpa.

¿Estás seguro que las versiones de MySQL son las mismas en todos los servidores donde haces pruebas?

Cita:
no entiendo por qué un simple ORDER BY hace que el php ya no se ejecute
No, no y no.

La consulta de SQL en PHP finalmente es una cadena de texto común y corriente, y un simple "ORDER BY" no debería cambiar su naturaleza, es ridículo que pienses eso.

Vamos, que a leguas se nota que el problema es la consulta en si por lo que nos indicas, no el código que muestras.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 07/06/2013, 11:38
 
Fecha de Ingreso: junio-2013
Mensajes: 5
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Duda con consulta. En myphpadmin funciona, en php falla

Eso pienso yo pero,

El php con esta consulta me ha funcionado sin problemas durante aproximadamente 3 meses.

De repente un día me sale página en blanco y tras probar mil cosas ha aislado el problema.

Está en el ORDER BY. Si lo pongo el php sale en blanco. Si no lo pongo el php se ve bien.
Sin embargo la consulta por sí misma funciona sin problemas en el phpadmin, tanto en local como en remoto. ¿Qué puede haber mal en la consulta?
  #8 (permalink)  
Antiguo 07/06/2013, 11:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Duda con consulta. En myphpadmin funciona, en php falla

Si tu dices que la pagina se queda en blanco entonces ahí hay un error que no podemos adivinar, si no depuras esa parte y averiguas que está sucediendo está complicado.

Cita:
¿Qué puede haber mal en la consulta?
Eso no lo sabemos, aquí tratamos problema de código PHP (que no tienes) y no de SQL.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 07/06/2013, 11:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Duda con consulta. En myphpadmin funciona, en php falla

Cita:
¿Qué puede haber mal en la consulta?
¿En la consulta?

Nada.

Si la consulta tuviese problemas, no te habría funcionado nunca, ni en local ni en remoto.
Ahora bien, ¿qué cambio en el servidor del host recientemente? ¿Versión de PHP? ¿Versión de MySQL? ¿Alguna configuración?
Obviamente, si no cambiaste ni los scripts, ni las consultas... solo queda que el host no es igual que antes.

¿No te parece?


Mas allá de eso, la consulta me parece un espanto de performance. El ORDER BY, dependiendo de la cantidad de datos existentes, puede no hacer nada o matarte la consulta por timeout...
¿Verificaste eso?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 07/06/2013, 12:02
 
Fecha de Ingreso: junio-2013
Mensajes: 5
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Duda con consulta. En myphpadmin funciona, en php falla

Estoy completamente de acuerdo en que algo ha debido cambiar en el host, aunque ellos me dicen que no.

En cuanto a "matar la consulta por timeout" no sé como comprobarlo pero, de ser así ¿no fallaría la consulta también al probarla en el phpadmin?

¿Podría ser que la tabla principal a la que se dirije la consulta "productos" ha alcanzado un número de registros excesivo? La verdad es que no lo creo, actualmente en la base de datos habrá unos 420 registros.

Muchas gracias por vuestros esfuerzos. Intentaré averiguar más sobre el tema con los responsables del host.

Etiquetas: falla, mysql, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:28.