Sie haben keine Aggregationsfunktion verwenden, so .. Sie verwenden sollten, wo und nicht
die Zeichenfolge für den Druck
"SELECT name, lat, lng
FROM markers where distance < '%s' ORDER BY distance LIMIT 0 , 20",
Sie verwenden sprintf mit und Sie passieren% s die Sie nur einen String im Aufruf (die andere par passieren sollte messer sind falsch)
$query = sprintf("SELECT name, lat, lng
FROM markers HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20",
mysql_real_escape_string($Your_string));
Dies ist die Abfrage, die Sie
bereitgestellt
query = sprintf("SELECT name,imagem, lat, lng
FROM markers
WHERE %2$s HAVING distance < '%1$s'
ORDER BY distance LIMIT 0 , 20",
mysql_real_escape_string($center_lat),
mysql_real_escape_string($center_lng),
mysql_real_escape_string($center_lat),
mysql_real_escape_string($radius),
mysql_real_escape_string($dynamicWhereCondition));
Wie ich schon sagte, bevor Sie nicht mit verwenden, haben .. (zu haben ist eine Klausel SQL wird für Filter aggregatio verwendet Funktion, die Sie in Ihrer Abfrage nicht haben)
müssen mehr nicht verwenden dann die vars Sie mit% erklären ... erklären Sie 2 vars aber das Passieren var sind 5
und mehr erklären Sie die Vars in einer Art und Weise denke ich falsch% 1s und 2s% ..
dann beraten Sie i Ihr Wissen über SQL mit den einfacheren Fällen zu vertiefen, was Sie verwenden ..
Ich entschuldige mich, wenn ich dies als Antwort hinzugefügt habe, aber es war zu schwierig, mit einem Kommentar umzugehen
Sie sollten über vorbereitete Stents lernen! – Jens
% s ist ein Platzhalter für eine Zeichenfolge. Google für sprintf und Sie erhalten eine ordnungsgemäße Erklärung – Jens
dynamische Statements können Sie mit wenn sonst in PHP erstellen – Jens