Ben "puan" ve "kategori" olarak adlandırılan benim veritabanında bir tablo var. Bir kullanıcı olacak bir konum giriş ve bir anahtar kelime giriş metin kutusuna hem de içine giriş bilgisi.
Sonra anahtar kelime puan tablosunda "title" alanını, ya da "kategori" ya maçlar nerede benim tabloda noktaları bulmak istiyorum ama kullanıcının yerden belli bir mesafede bulunmaktadır. Ben Mesafeye göre sonuçlarını sipariş etmek istiyorum.
Burada bağımsız çalışma btoh 2 sorgular şunlardır:
$mysql = "SELECT *, ( 3959 * acos( cos( radians('$search_lat') ) * cos( radians( lat ) ) * cos( radians( longi ) - radians('$search_lng') ) + sin( radians('$search_lat') ) * sin( radians( lat ) ) ) ) AS distance FROM points HAVING distance < '$radius'";
$mysql2 = "SELECT * FROM `points` LEFT JOIN category USING ( category_id ) WHERE (point_title LIKE '%$esc_catsearch%' OR category.title LIKE '%$esc_catsearch%')";
İşte ben denedim budur:
$sql_search = sprintf("SELECT *,point_id FROM points WHERE point_title LIKE '%%%s%%' UNION SELECT *, ( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( longi ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM points HAVING distance < '%s' ORDER BY distance LIMIT %d , %d",
$esc_catsearch,
mysql_real_escape_string($search_lat),
mysql_real_escape_string($search_lng),
mysql_real_escape_string($search_lat),
mysql_real_escape_string($radius),
$offset,
$rowsPerPage);
Ama hiçbir bilgi sütunu "mesafe" olduğunu söylüyor. Ben "Siralama" ifadesini kaldırırsanız o zaman çalışıyor ama ben yine de bu bana istediğim sonuçlar veriyor emin değilim. Ben de ilk mesafe arama ile başka bir yol etrafında sorgu çalıştı ama bu benim bir kelime yok gibi görünüyor.
Herhangi bir düşünce çok takdir!