php / mysql şehir devleti append

4 Cevap php

Zor bir zaman bunu yapmak için en iyi yolu bulmaktan olması ...

Ben "arama terimleri" ve "arama konumunu" alır bir arama fonksiyonu var. Yeri girişinde, ben "şehir, eyalet kısaltması" kadar getiren bir öneri özelliği var ama bazı kullanıcılar sadece kullanmak (ya da yapamaz) yok gibi görünüyor bu yüzden sadece bir şehir adı girerken sonuna kadar ... Ben gerek form gönderildikten sonra devlet kısaltması eklemek. Ben ABD'de tüm şehir ve devlet isimleri ile bir tablo var ama sorun farklı ülkelerde aynı ada sahip birden şehirler vardır ... ... Ben şehir en çok olduğu devlet için devlet kısaltmasını eklemek istiyorum için popüler (bu mantıklı mı?).

Kullanıcının girdiği Örneğin, "Miami" Ben "Miami, WV" karşıt olarak "Miami, FL" olmak istiyorum ...

Herhangi bir fikir?

Teşekkürler!

4 Cevap

Sen "şehir nüfusu" ve "genel popülaritesi" arasındaki ilişkiyi dikkate almak isteyebilirsiniz.

Bu nedenle kolay bir seçenek, her bir şehrin nüfusu toplamak o veritabanında depolamak ve bir şehir ismi disambiguate gerektiğini kullanıldığında ise, büyük nüfusa sahip birini seçebilirsiniz olabilir.

Aşağıdaki Wikipedia makalesinde referanslar yararlı olabilir: List of US cities by population.


Google Maps ağırlıklandırma farklı olsa bile, benzer bir şekilde Disambiguations giderir:

http://maps.google.com/?q=Miami

http://maps.google.com/?q=Miami,WV

Ben bu tür sorunları çözerken Google Maps de dikkate geçerli Viewport'u alır düşünmek için kullanılan, ancak Batı Virginia içine uzaklaştırdınız ise Miami arıyor hala Florida'da götürür.

Ben (bu mantıklı mı?) Şehir için en popüler olduğu devlet için devlet kısaltmasını eklemek istiyorum.

Hayır. Bu kesinlikle mantıklı değil. Ya is Miami, wv biri?

Senin de var olacak bir durum seçmek için kullanıcıyı zorlamak, ya da daha sonra devlet anlamaya yardımcı olabilecek bir posta kodu girmek için düşünüyorum. Bu yine de mantıklı olmaz mı? Adresi bir posta kodu olmadan değersiz olmaz mıydı?

Ardından eşleşen şehir adı ve yüksek ağırlık değeri ile satır seçmek için şehir / eyalet adı tabloya karşı sorgu çalıştırdığınızda, ve devlet adını döndürmek - Muhtemelen şehir ve devlet isimleri sizin tablosunda mevcut ağırlık değerlerine sahip gerekiyordu.

Daha iyi bir seçenek, ancak, muhtemelen doğru ask the user hangisinin sonra olası devletlerin bir sorgu, kapmak all çalıştırmak olacağını ve - en iyi bunları soracak AJAX kullanmak olacaktır onlar formu ile devam etmeden önce; hatta sadece bir takip sayfası da işe yarayabilir. Bu durumda automagically devlet doldurmaya çalışırken muhtemelen sadece kentin o kadar popüler değil sürüm demek oldu kullanıcılar için karışıklığa yol açacaktır.

Eğer select deyimi yaparken popülerlik ağırlığına göre bir popülerlik şehir tabloda şehirlerin her biri için ağırlık ve düzeni atayın.

Alternatif olarak kesinlikle iyi bir fikir olacaktır ... Hangi onlar girdi şehir var sonra kullanıcı ne anlama hangisini seçmek için izin ...