Hiç başarılı olamadım ve baktım, denedim ve denedim. Kullanıcıları belirli bir uzaklık aralığında görüntülemek için kullandığım bir sorgum var. Harika çalışıyor, ancak tüm kullanıcıları users
tablomdan döndürüyor ve sadece account_type
'daki değerin '1' değerine eşit olduğu kullanıcıları döndürmesini istiyorum. Yani temelde farklı türde hesap türleri kullanıcılarımı paylaşıyor ve bu sayfada sadece bir kullanıcı tipinin görüntülenmesini istiyorum. Hiç bilmediğim aynı tabloya katılmak da dahil olmak üzere her türlü şeyi denedim ve zaten işe yaramadı. Temel olarak, bu sorguda nerede 'account_type' adlı sütunu kontrol etmek için bir 'WHERE' yan tümcesi ekleyebileceğimi bilmek isterim.Boylam enlem sorgusu ancak sadece aynı tablodaki sütunla eşleşen satırlar
İşte benim fonksiyonel sorgu var:
: Sadece account_type = 1, hiçbir başarı ile aşağıdakilerden birçok farklı varyasyonlar yaparak çalıştı sahip olduğu tablodan kullanıcı döndürmek istediğimiz içinSELECT `user_id`, (3959 * acos(cos(radians('".$lat."')) * cos(radians(lat)) * cos(radians(lng) - radians('".$lng."')) + sin(radians('".$lat."')) * sin(radians(lat)))) AS distance FROM users HAVING distance <= '".$dist."' ORDER BY distance
Bu konuyu daha fazla kirletmeyecek olsam da, başka bir çok kişi için
SELECT `user_id`, `account_type`, (3959 * acos(cos(radians('".$lat."')) * cos(radians(lat)) * cos(radians(lng) - radians('".$lng."')) + sin(radians('".$lat."')) * sin(radians(lat)))) AS distance FROM users ***WHERE `account_type` = '1'*** HAVING distance <= '".$dist."' ORDER BY distance
SELECT `user_id`, `account_type`, (3959 * acos(cos(radians('".$lat."')) * cos(radians(lat)) * cos(radians(lng) - radians('".$lng."')) + sin(radians('".$lat."')) * sin(radians(lat)))) AS distance FROM users HAVING distance <= '".$dist."' ***WHERE `account_type` = '1'*** ORDER BY distance
. Birisi bana neyi yanlış yaptığımı söyler mi? Teşekkürler
Sadece "WHERE" işlevini sadece bunun gibi kullanmayı deneyin. "SELECT ......... FROM kullanıcılarından WHERE account_type = '1' VE mesafe <=" ". $ Dist." 'SIRA BOŞ. " – rhavendc
Teşekkürler. Bu yüzden ne dediğinizi denedim, SELECT 'user_id', 'account_type', (3959 * acos (cos (radyanlar ('". $ Lat. "')) * Cos (radyanlar (lat)) * cos (radyanlar (lng)) - radyanlar ('". $ lng."')) + sin (radyanlar ('". $ lat."')) * günah (radyan (lat)))) Uzaklık kullanıcıları olarak NEREDE hes_type = '1' VE mesafe <= '". $ dist."' SİPARİŞ VEREBİLİR ve Mysql hatası alıyorum – user1000665
Sorunuz "SELECT ......... FROM kullanıcılarından WHERE account_type = '1' HAVING mesafe <= '". $ dist "Mesafeden sipariş" 'çalışır? İşe yaramalı. 'WHERE' deyimini' HAVING''ten önce koymak doğrudur ve 'GROUP BY' olmadan' HAVING' kullanmakta sorun yoktur. ** Belki de 1/hesap sahibinin/1'inin ve tablonuzda verilen mesafeden daha az bir kullanıcı yok ** – rhavendc