#1 2016-03-31 11:04:25

sagto
Člen
Registrován: 2010-05-13
Příspěvky: 80

Dotaz na mysql dotaz

SELECT *,acos(cos(radians(50.1))*cos(radians(14.44))*cos(radians(lat))*cos(radians(lng))+cos(radians(50.1))*sin(radians(14.44))*cos(radians(lat))*sin(radians(lng))+1 sin(radians(50.1))*sin(radians(lat))) * 6372795 as vz FROM chat WHERE vz<1001 ORDER BY datum DESC

Nemohu přijít na to co je špatně. Potřebuji selektovat zprávy chatu podle radiusu gps souřadnic. Napřiklad tady ve vzdálenosti 1000 metrů a menší. Můžete mi prosím pomoci? Háže mi to error 1064 a prostě nevím kde má být chyba.

Děkuji za odpověď.

Offline

#2 2016-03-31 13:31:17

jiriolah
Podpora
Registrován: 1970-01-01
Příspěvky: 307

Re: Dotaz na mysql dotaz

#1064 - 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 ' sin(radians(50.1))*sin(radians(lat))) * 6372795 as vz FROM chat WHERE vz<1001 ORDER BY datum DESC ' at line 1

Offline

#3 2016-03-31 13:32:13

jiriolah
Podpora
Registrován: 1970-01-01
Příspěvky: 307

Re: Dotaz na mysql dotaz

Nechybí vám nějaký operátor mezi "1" a "sin(radians(50.1))" ?

Offline

#4 2016-03-31 14:26:18

sagto
Člen
Registrován: 2010-05-13
Příspěvky: 80

Re: Dotaz na mysql dotaz

Jakože v radians(50.1))*sin( sekci? A co by tam mělo být? Vzdyt je to funkce krát funkce.

Offline

#5 2016-03-31 14:29:14

jiriolah
Podpora
Registrován: 1970-01-01
Příspěvky: 307

Re: Dotaz na mysql dotaz

+1 sin(radians(50.1)) ... mezi "1" a "sin(radians(50.1))" chybí operátor

Offline

#6 2016-03-31 14:44:18

sagto
Člen
Registrován: 2010-05-13
Příspěvky: 80

Re: Dotaz na mysql dotaz

Tak jsem to opravil na
SELECT *,acos(cos(radians(50.1))*cos(radians(14.44))*cos(radians(lat))*cos(radians(lng))+cos(radians(50.1))*sin(radians(14.44))*cos(radians(lat))*sin(radians(lng))+sin(radians(50.1))*sin(radians(lat))) * 6372795 as vz FROM chat WHERE vz<1001 ORDER BY datum DESC
       
A error 1046 no database selected a to vidím poprvé.

Offline

#7 2016-03-31 14:47:28

jiriolah
Podpora
Registrován: 1970-01-01
Příspěvky: 307

Re: Dotaz na mysql dotaz

A připojovací string? Je dobře?

Offline

#8 2016-03-31 14:52:09

sagto
Člen
Registrován: 2010-05-13
Příspěvky: 80

Re: Dotaz na mysql dotaz

Vše je stejné jenom jiný dotaz a prostě ne. Navíc to ženu i mysql admin a tam to právě hodí tohle. A to by byla hloupost.

Offline

#9 2016-03-31 14:56:26

jiriolah
Podpora
Registrován: 1970-01-01
Příspěvky: 307

Re: Dotaz na mysql dotaz

Používáte mysql, mysqli nebo PDO?
A doména?

Offline

#10 2016-03-31 14:58:05

sagto
Člen
Registrován: 2010-05-13
Příspěvky: 80

Re: Dotaz na mysql dotaz

mysql maxevil.eu už to přepisuji různě 2 dny a prostě ten dotaz nemůžu dát do kupy. A přitom to potřebuji pro mojí chat aplikaci

Offline

#11 2016-03-31 15:02:47

jiriolah
Podpora
Registrován: 1970-01-01
Příspěvky: 307

Re: Dotaz na mysql dotaz

Nechybí Vám tam náhodou ještě sloupec "vz" ?

Offline

#12 2016-03-31 15:04:08

jiriolah
Podpora
Registrován: 1970-01-01
Příspěvky: 307

Re: Dotaz na mysql dotaz

Aha, už chápu "vz" má být ta vypočítaná vzdálenost?

Offline

#13 2016-03-31 15:04:15

sagto
Člen
Registrován: 2010-05-13
Příspěvky: 80

Re: Dotaz na mysql dotaz

tam musím mít ten sloupec? Já myslel, že se vytvoří virtuálně a tak se tak bude tvářit i pro řazení?

Offline

#14 2016-03-31 15:06:14

jiriolah
Podpora
Registrován: 1970-01-01
Příspěvky: 307

Offline

#15 2016-03-31 15:11:06

jiriolah
Podpora
Registrován: 1970-01-01
Příspěvky: 307

Re: Dotaz na mysql dotaz

např. jednoduše takto bez použití aliasu :

SELECT * FROM chat WHERE (acos(cos(radians(50.1))*cos(radians(14.44))*cos(radians(lat))*cos(radians(lng))+cos(radians(50.1))*sin(radians(14.44))*cos(radians(lat))*sin(radians(lng))+sin(radians(50.1))*sin(radians(lat))) * 6372795)<1001 ORDER BY datum DESC

Dotaz mi normálně projde a vyselectuje smile

Offline

#16 2016-03-31 15:17:56

sagto
Člen
Registrován: 2010-05-13
Příspěvky: 80

Re: Dotaz na mysql dotaz

Tak dobrá a teď to nechápu vůbec.

SELECT *,acos(cos(radians(50.1))*cos(radians(14.44))*cos(radians(lat))*cos(radians(lng))+cos(radians(50.1))*sin(radians(14.44))*cos(radians(lat))*sin(radians(lng))+sin(radians(50.1))*sin(radians(lat))) * 6372.795*1000 as vzdalenost FROM chat WHERE vzdalenost<=500 ORDER BY datum DESC

a přitom vypíše

[{"id_chat":"90","datum":"1459427655","jmeno":"5673d40c37a0b282","text":"test","lat":"50.099567200000000","lng":"14.429221300000000","vzdalenost":"770.5262396031098"},{"id_chat":"89","datum":"1459397836","jmeno":"5673d40c37a0b282","text":"hovno","lat":"50.103914800000000","lng":"14.449847500000000","vzdalenost":"826.5449318463491"},{"id_chat":"88","datum":"1459394312","jmeno":"5673d40c37a0b282","text":"test","lat":"50.071745800000000","lng":"14.404177200000000","vzdalenost":"4051.1766602832545"},{"id_chat":"87","datum":"1459352845","jmeno":"5673d40c37a0b282","text":"test","lat":"50.108068100000000","lng":"14.214221000000000","vzdalenost":"16132.053929937183"},{"id_chat":"86","datum":"1459352844","jmeno":"5673d40c37a0b282","text":"test","lat":"50.108068100000000","lng":"14.214221000000000","vzdalenost":"16132.053929937183"},{"id_chat":"85","datum":"1459352220","jmeno":"5673d40c37a0b282","text":"test","lat":"50.427004800000000","lng":"14.245646100000000","vzdalenost":"38908.21634920766"},{"id_chat":"84","datum":"1459307053","jmeno":"5673d40c37a0b282","text":"hovnival","lat":"50.104432800000000","lng":"14.449760600000000","vzdalenost":"853.2248218599289"},{"id_chat":"83","datum":"1459230919","jmeno":"5673d40c37a0b282","text":"hovno","lat":"50.103895000000000","lng":"14.449833500000000","vzdalenost":"824.5370083312146"},{"id_chat":"82","datum":"1459229946","jmeno":"5673d40c37a0b282","text":"jsjsjskdjdkdkdkd","lat":"50.103916300000000","lng":"14.449860900000000","vzdalenost":"827.4454730014875"},{"id_chat":"81","datum":"1459213563","jmeno":"5673d40c37a0b282","text":"test prazdne zpravy","lat":"50.103961700000000","lng":"14.449925900000000","vzdalenost":"834.0482787102958"},{"id_chat":"80","datum":"1459111076","jmeno":"5673d40c37a0b282","text":"haje kulec","lat":"50.031412900000000","lng":"14.528816300000000","vzdalenost":"9920.079383516104"},{"id_chat":"79","datum":"1458929172","jmeno":"5673d40c37a0b282","text":"nagano","lat":"50.068274500000000","lng":"14.406265200000000","vzdalenost":"4271.8286110807185"}]

a má vypsat do vzdálenosti 500.

Offline

#17 2016-03-31 15:34:53

sagto
Člen
Registrován: 2010-05-13
Příspěvky: 80

Re: Dotaz na mysql dotaz

Tak jsem použil Váš dotaz. Děkuji už to funguje.

Offline

#18 2016-03-31 15:37:38

jiriolah
Podpora
Registrován: 1970-01-01
Příspěvky: 307

Re: Dotaz na mysql dotaz

To jsem rád, není zač.

Offline

Zápatí

Založeno na FluxBB | CZ a SK