Probleme mit Variablen in SQL Rechen/Abfrage

also gumbo erst mal danke das mit dem ausklammern probier ich gleich mal aber ich glaube nicht das es daran liegt denn ich habe die abfrage bewusst in " gesetzt und nicht in ' und normalerweis kann man variablen in einen doppelhochkomma paar einfach so reinschreiben.

PHP:
echo htmlspecialchars($sql);

kannte ich zwar hatte aber nicht dran gedacht es anzuwenden. es hat folgendes ausgegeben

PHP:
SELECT acos( sin( coords.lon * 3.14159268 /180 ) * sin( 49.3 * 3.14159268 /180 ) + cos( coords.lon * 3.14159268 /180 ) * cos( 49.3 * 3.14159268 /180 ) * cos( ( 6.81667 - coords.lat ) * 3.14159268 /180 ) ) * 6378.137, tn.name, t.text_val FROM geodb_coordinates coords, geodb_textdata t, geodb_type_names tn WHERE acos( sin( coords.lon * 3.14159268 /180 ) * sin( 49.3 * 3.14159268 /180 ) + cos( coords.lon * 3.14159268 /180 ) * cos( 49.3 * 3.14159268 /180 ) * cos( ( 6.81667 - coords.lat ) * 3.14159268 /180 ) ) * 6378.137 < 5 AND t.loc_id = coords.loc_id and t.text_type =tn.type_id and (tn.type_locale="de_DE" OR tn.type_locale="de");

und das zeigt das hier eindeutig die variablen $laenge und $breite vertauscht wurden. jetzt in ich hingegangen und hab die var nahmen getauscht also $laenge = $breite und umgekehrt und dann geht es . warum dies jetzt passiert kann ich mir jedoch nicht erklären
 
Ich hatte die sich wiederholenden aber festen Werte bereits vorher ausrechnen lassen, da ich nicht weiß, wie MySQL die Abfrage optimieren würde. Vermutlich würde es aber auch erst die festen Werte berechnen und zwischenspeichern.

Funktioniert es denn nun?
 
jo das kann natürlich sein. ich hab jetzt einfach die variablen getauscht und jetzt funktioniert es. die sauberste lösung ist das zwar nicht denn wenn mal einer in meinem code was ändern will wird das etwas verwirren. aber ich weiss mir im mom nicht anders zu helfen :-)
 
Zurück