La query misteriosa

Iniciado por XafiloX, 20 Junio 2009, 21:27 PM

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

XafiloX

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 (sql) [Seleccionar]
$sql = "SELECT
l.temp_min, l.diameter, l.name as moon_name, l.last_update as moon_update,  l.destruyed as moon_destruyed, 
g.*, g.metal as debris_metal, g.crystal as debris_crystal, g.planet as planetpos, g.neutronio as debris_neutronio, 
p.*, p.name as planet_name,
u.*, u.id as user_id,
s.total_rank,
a.ally_tag, a.ally_name, a.ally_web, a.ally_members,
e.total_rank as ally_rank
FROM {{table}}planets as p

LEFT JOIN {{table}}galaxy as g ON g.id_planet = p.id
LEFT JOIN {{table}}users as u ON u.id = p.id_owner
LEFT JOIN {{table}}alliance as a ON a.id = u.ally_id
LEFT JOIN {{table}}planets as l ON l.id = g.id_luna AND l.planet_type = 3
LEFT JOIN {{table}}statpoints as s ON s.id_owner = u.id AND s.stat_type = 1 AND s.stat_code = 1
LEFT JOIN {{table}}statpoints as e ON e.id_owner = u.ally_id AND e.stat_type = 2 AND e.stat_code = 1

WHERE
g.galaxy = $Galaxy
AND g.system = $System
ORDER BY g.planet ASC";
$rs = doquery($sql, '');


HardieVon

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

Ertai

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?
Si la felicidad se comprara, entonces el dinero sería noble.


void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}

XafiloX

De resultado, porque moon_name, moon_destruyed y moon_update aparecen vacios...

Voy a aprobar a quitarle esta linea
Código (sql) [Seleccionar]
p.*, p.name as planet_name,
y otras cosas mas...a ver si hay suerte!