Autor Zpráva
marek87456
Profil *
ahoj, prosím o radu s řešením dotazu. Když ho zadám přímo do phpMyAdmina nebo do MySql query browseru, dostanu výsledek. Když mám však ve skriptu následující kód, dostanu false. Když to proženu přes dibi::query, dostanu You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT xx.* FROM ( SELECT x.* FROM ( SELECT' at line 2

Netušíte kde je problém? díky

return mysql_query("
SET @ID=0;
SELECT xx.*
FROM (
SELECT x.*
FROM (
SELECT rr.id,rr.id_rank,rr.category,rr.own_category,rr.id_race,rr.id_result,
rr.id_race_kind,
rr.id_category,vy.vlastni_kategorie,
vy.id_clovek,vy.id_team,vy.poradi,rr.id_out
FROM rank_results rr,
vysledky vy
LEFT JOIN lide li ON vy.id_clovek=li.id_clovek
LEFT JOIN tymy ty ON vy.id_team=ty.id_team
LEFT JOIN rank rn ON vy.id_zavod=rn.id
WHERE vy.id_zavod=rr.id_race AND vy.id_vysledek=rr.id_result
AND NOT EXISTS
(SELECT 1 FROM rank_out ro
WHERE rr.id_out=ro.id_out AND vy.vlastni_kategorie=ro.own_category)
ORDER BY rr.id,vy.poradi
)x
)xx WHERE (id_out=0 OR vlastni_kategorie=own_category) AND id_rank = 19;
");
Kcko
Profil
SET @ID
musíš mít jako samostatný dotaz
G3n3sis19
Profil
mysql_query neumí více dotazů najednou, musel by si použít mysqli_multi_query a musel by si být připojený s mysqli_connect
Takže to musíš rozdělit

mysql_query("SET @ID=0;");
return mysql_query("
SELECT xx.*
FROM (
SELECT x.*
FROM (
SELECT rr.id,rr.id_rank,rr.category,rr.own_category,rr.id_race,rr.id_result,
rr.id_race_kind,
rr.id_category,vy.vlastni_kategorie,
vy.id_clovek,vy.id_team,vy.poradi,rr.id_out
FROM rank_results rr,
vysledky vy
LEFT JOIN lide li ON vy.id_clovek=li.id_clovek
LEFT JOIN tymy ty ON vy.id_team=ty.id_team
LEFT JOIN rank rn ON vy.id_zavod=rn.id
WHERE vy.id_zavod=rr.id_race AND vy.id_vysledek=rr.id_result
AND NOT EXISTS
(SELECT 1 FROM rank_out ro
WHERE rr.id_out=ro.id_out AND vy.vlastni_kategorie=ro.own_category)
ORDER BY rr.id,vy.poradi
)x
)xx WHERE (id_out=0 OR vlastni_kategorie=own_category) AND id_rank = 19;
"); 

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0