PDA

View Full Version : best match



m.mani
شنبه 25 مرداد 1393, 08:30 صبح
سلام خسته نباشید.
یک ماژول جستجو دارم میخوام زمانیکه مثلا سرچ کردم آپارتمان دو خوابه مواردی که آپارتمان یا دو خوابه یا هر دو رو داشت رو نمایش بده ولی به ترتیب بر اساس شباهت بیشتر یعنی مواردی که هم آپارتمان هم دوخوابه داره اول بیاد.
ممنون میشم راهنماییم کنید.

m.mani
یک شنبه 26 مرداد 1393, 08:17 صبح
یعنی تا الان کسی به این مورد بر نخورده؟:متعجب:

php_programmer021
یک شنبه 26 مرداد 1393, 09:13 صبح
با سلام
کوری تو اینجوری بنویس

$search_sql = "SELECT * FROM `yourtable` WHERE firstrecord LIKE '%".$_POST['search']."%' OR secondrecord LIKE '%".$_POST['search']."%'";

توی سرچ هر چه بنویس شبیه متن های داخل رکورد اولی باشه یا متن رکورد دومی باشه نشون می ده.

m.mani
یک شنبه 26 مرداد 1393, 09:20 صبح
ممنون از پاسختون.
همین کار و انجام بدم ولی مشکل اینجاست که میخوام سورتشون کنم.دکمه ای دارم که سورت میکنم بر اساس بیشترین شباهت و کمترین شباهت.دستور سورتش رو احتیاج دارم

Unique
یک شنبه 26 مرداد 1393, 12:42 عصر
میخوام زمانیکه مثلا سرچ کردم آپارتمان دو خوابه مواردی که آپارتمان یا دو خوابه یا هر دو رو داشت

دوست عزیز یا دوخوابه یا هر دو یعنی چی ؟ یعنی اگه دو خوابه به بالا داشت ؟ اگه منظورت اینه باید تعداد خواب را توی یک فیلد ذخیره کنی و روش order by asc بگذاری ! همین اما اگه مظنرت چیز دیگست توضیح بده.

m.mani
یک شنبه 26 مرداد 1393, 13:49 عصر
مثلا من داخل عنوان تبلیغاتم ویلایی دو خوابه,ساختمان دوخوابه,آپارتمان دوخوابه را دارم زمانیکه سرچ میکنم آپارتمان دوخوابه نتیجه جستجو به صورت زیر باشه:
آپارتمان دوخوابه
ویلایی دو خوابه
ساختمان دوخوابه
و اگر نتیجه سورتم asc شد نتیجه سرچ بر عکس شود یعنی:
ویلایی دو خوابه
ساختمان دوخوابه
آپارتمان دوخوابه

Unique
یک شنبه 26 مرداد 1393, 16:38 عصر
خوب قائدتا باید یک فیلد داشته باشی که مشخص کنه نوع واحد چیه ! و یک فیلد که مشخص کنه تعداد خواب چند تا هست ! کافیه همه موارد با دو خواب را بگیری و بر اساس نوع sort کنی ، حالا توی یک حلقه همه موارد را بررسی میکنی و اونی که کاربر جستجو کرده را ازش جدا میکنی و بقیه را هم با هم جدا میکنی حالا اول نتایج جستجو را نشون میدی و بعدش نتایج دیگه را ! کار خاصی نیست و با یک query و یک حلقه براحتی انجام میشه.

query که مشخصه :

select * from melk where m_rooms = 2 order by m_type {asc , desc}

مشکل فقط طمان نمایش پیش میاد که مثلا دنبال ویلایی هستش و ویلایی ها وسط query میفته ! که مشکلی نیست و کافیه توی حلقه ویلایی ها را بریزی توی یک متغیر و مابقی را توی یکی دیگه بعش اول ویلایی ها و بعد مابقی را echo بگیری.