نمایش نتایج 1 تا 5 از 5

نام تاپیک: مرتب کردن نتایج جستجو بعد از کوئری و با مقایسه 2 رشته

  1. #1

    مرتب کردن نتایج جستجو بعد از کوئری و با مقایسه 2 رشته

    سلام

    برای سرچ سایت اول از دیتابیس کوئری میگیرم بعد میخوام با استفاده از مقایسه 2 رشته باهم بعنی رشته اول که کلمه ای هست که کاربر تایپ کرده و رشته دوم خروجی هست که از دیتابیس بیرون اومده
    حالا 2 تا مشکل هست
    یکی اینکه توی کوئری از limit استفاده شده برای pagination و توی هر بار جستجو داره فقط 10 تا جواب در میاره

    یکی هم اینکه میخوام نتایجی که از کوئری بدست اومده کامل نمایش داده بشه ولی بر اساس درصد شباهت 2 رشته مرتب بشه نه order by کوئری

    حالا برای نمایش باید از آرایه استفاده کنم؟ برای کوئری بدون limit باید از چه راهی استفاده کنم؟
    لطفا راهنمائی کنید ممنون

  2. #2
    کاربر دائمی آواتار mohsen6500
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    آبادان
    سن
    37
    پست
    589

    نقل قول: مرتب کردن نتایج جستجو بعد از کوئری و با مقایسه 2 رشته

    سلام دوست عزیز
    معمولش اینه که یه حدی رو قرار بدی ولی خوب اگر نمیخوای حدی باشه بدون limit یعنی اگر limit نذاری نمی یاد؟
    برای جستجوی مشابه هم میتونی کلمه مورد نظرت رو با استفاده از دوتا درصد% محصور کنی به این شکل :
    SELECT * FROM  `MyTable` WHERE  `MyField` LIKE  '%$myWord%'

    موفق باشید

  3. #3

    نقل قول: مرتب کردن نتایج جستجو بعد از کوئری و با مقایسه 2 رشته

    منظور من این نبود
    ببینید فرض کنید من یک کوئری برای سرچ دارم به این شکل

    SELECT * FROM `tbl` where `app` = '1' AND `city` = '$state' AND (`unit` LIKE '%$search%' OR `keyword` LIKE '%$search%' ORDER BY `tarikh` DESC LIMIT $start, $limit

    اینجا من کوئری سرچ رو محدود کردم برای pagination
    حالا میخوام این کار و نکنم و بجاش یک کوئری بنویسم به این شکل

    SELECT * FROM `tbl` where `app` = '1' AND `city` = '$state' AND (`unit` LIKE '%$search%' OR `keyword` LIKE '%$search%' )

    بعد جواب های کوئری که داخل آرایه هست مرتب کنم
    فرض کنید خروجی های این کوئری داخل آرایه ای به نام $row هست
    کلمه ای که کاربر سرچ کرده داخل $search هست
    با تابع های مقایسه 2 رشته با هم این 2 تا رشته رو مقایسه کنم و اول اون رشته هائی که شباهت بیشتری با هم دارن و اول صفحه چاپ کنم بعدا بقیه
    نمیدونم خروجی های توی آرایه که از کوئری بدست اومده رو چجوری اول مرتب کنم بعد نمایش بدم؟!

  4. #4
    کاربر دائمی آواتار 2undercover
    تاریخ عضویت
    تیر 1391
    محل زندگی
    خراسان رضوی
    پست
    1,471

    نقل قول: مرتب کردن نتایج جستجو بعد از کوئری و با مقایسه 2 رشته

    تنها چیزی که من پیدا کردم تابع substr_count هستش که تعداد تکرار یک رشته رو در یک رشته بر می گردونه!

  5. #5

    نقل قول: مرتب کردن نتایج جستجو بعد از کوئری و با مقایسه 2 رشته

    نقل قول نوشته شده توسط 2undercover مشاهده تاپیک
    تنها چیزی که من پیدا کردم تابع substr_count هستش که تعداد تکرار یک رشته رو در یک رشته بر می گردونه!
    نه منظور من این نبود
    شما فرض کنید الان نتیجه کوئری داخل آرایه $row وجود داره
    حالا میام با استفاده از حلقه while هر ردیف و مقایسه رشته ای میکنم درصد شباهتشون مشخص میشه
    مثلا ردیف اول 90% شباهت داشت با کلمه جستجو شده .. ردیف دوم 10% ردیف سوم 50% و ......
    حالا مشکل من اینه که موقع نمایش , اینا رو چطوری بر اساس درصد بالاتر نمایش بدم ؟؟
    یعنی اول اونی که 90 درصد شباهت داشته کلماتش , نمایش بدم بعد به ترتیب درصد های پائین تر و؟


    while($row = mysql_fetch_array($sql )){
    similar_text(strtoupper($search), strtoupper($row['unit']), $similarity_pst);
    if (number_format($similarity_pst, 0) > 30){
    }

    الان توی کد بالا اگر شرط درست بود و درصد از 30 بالاتر بود چطوری بریزمش توی یک آرایه بعد آرایه رو با استفاده از یک تابع دیگه مرتب کنم بر اساس درصد ها ؟؟
    اینم بگم که تعداد اندیس های آرایه برای هر ردیف زیاده نزدیک 40-50 تا اندیس داره ...

تاپیک های مشابه

  1. پاسخ: 16
    آخرین پست: جمعه 08 اردیبهشت 1391, 15:12 عصر
  2. مرتب کردن بعد از انجام جستجو
    نوشته شده توسط farzane_fn در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 4
    آخرین پست: پنج شنبه 09 مهر 1388, 09:44 صبح
  3. رنگی کردن بخشی از متن در نتایج جستجو
    نوشته شده توسط amindiary در بخش C#‎‎
    پاسخ: 2
    آخرین پست: چهارشنبه 24 مرداد 1386, 16:56 عصر
  4. مرتب کردن نتایج fulltext
    نوشته شده توسط mzamani در بخش MySQL
    پاسخ: 3
    آخرین پست: دوشنبه 04 تیر 1386, 14:20 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •