Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: XafiloX en 20 Junio 2009, 21:27 pm



Título: La query misteriosa
Publicado por: XafiloX en 20 Junio 2009, 21:27 pm
Hola a todos.

Hoy mientras programaba he entrado en uno de esos rompecocos de los que te puedes tirar horas y horas pensando que es lo que esta mal, hasta que luego caes en que era una tonteria...sin embargo, esta vez no he conseguido encontrar la causa y por eso acudo a vosotros, que suguramente la sabreis...

La duda es sobre la siguiente query, en cuyo resultado ni moon_name, ni moon_destruyed ni moon_update consigo que tengan valores y no se me ocurre a que es debido...Debeis observar que tambien pertenece a la tabla planets, que utilizo unas lineas mas abajo, pero yo creo que no deberia influir, ya que las llamo de otra manera para que no se sobreescriban los valores...

Os agradeceria cualquier ayuda. Gracias!
   
Código
  1. $sql = "SELECT
  2. l.temp_min, l.diameter, l.name as moon_name, l.last_update as moon_update,  l.destruyed as moon_destruyed,  
  3. g.*, g.metal as debris_metal, g.crystal as debris_crystal, g.planet as planetpos, g.neutronio as debris_neutronio,  
  4. p.*, p.name as planet_name,
  5. u.*, u.id as user_id,
  6. s.total_rank,
  7. a.ally_tag, a.ally_name, a.ally_web, a.ally_members,
  8. e.total_rank as ally_rank
  9. FROM {{table}}planets as p
  10.  
  11. LEFT JOIN {{table}}galaxy as g ON g.id_planet = p.id
  12. LEFT JOIN {{table}}users as u ON u.id = p.id_owner
  13. LEFT JOIN {{table}}alliance as a ON a.id = u.ally_id
  14. LEFT JOIN {{table}}planets as l ON l.id = g.id_luna AND l.planet_type = 3
  15. LEFT JOIN {{table}}statpoints as s ON s.id_owner = u.id AND s.stat_type = 1 AND s.stat_code = 1
  16. LEFT JOIN {{table}}statpoints as e ON e.id_owner = u.ally_id AND e.stat_type = 2 AND e.stat_code = 1
  17.  
  18. WHERE
  19. g.galaxy = $Galaxy
  20. AND g.system = $System
  21. ORDER BY g.planet ASC";
  22. $rs = doquery($sql, '');


Título: Re: La query misteriosa
Publicado por: HardieVon en 22 Junio 2009, 21:53 pm
esto lo hiziste tu?

es mucho lio.

no te recomiendo que uses una asociativa de una asociativa.
aprende a identificarlo directo de la matriz que te devuelva aunque el indice sea numerico se que es mas confuzo pero asi no cargas tanto tu query.

por cierto aisla una consulta simple con el campo, si te sigue marcando error.
seguramente son los infinitos JOINs


Título: Re: La query misteriosa
Publicado por: Ertai en 23 Junio 2009, 18:24 pm
Es casi imposible solucionarte el problema. No por el tamaño de la query. Sino porque no sabemos como esta organizada la BDD y tampoco sabemos que quieres hacer con esa query.

Consejo: Copia esa query con variables en PHP fijas, y empieza a quitar JOINS, te tendrían que ir saliendo resultados acorde con los JOIN que queden e intenta mirar por donde anda el error.

Por cierto, es error de sintaxis o de resultado?


Título: Re: La query misteriosa
Publicado por: XafiloX en 25 Junio 2009, 19:14 pm
De resultado, porque moon_name, moon_destruyed y moon_update aparecen vacios...

Voy a aprobar a quitarle esta linea
Código
  1. p.*, p.name AS planet_name,
y otras cosas mas...a ver si hay suerte!