سپهر
5 سال پیش توسط سپهر مطرح شد
9 پاسخ

دستور جستجوی ساده php

سلام دوستان اول بگم که بنده مبتدی هستم و برای طراحی یک ربات ساده با php به مشکل خوردم و نیاز به راهنمایی شما عزیزان دارم
بنده به یک کد جستجوی ساده نیاز دارم که در دیتابیس جستجو کنه و اولین و نزدیک ترین پاسخ یا همان رکورد مشابه را برای ما چاپ کند و مابقی رکورد ها رو چاپ نکنه
برای اطلاع بیشتر بنده کد جستجوی خود را در زیر قرار میدم و مشکل آن این هست که تمام فیلد های مشابه را هم چاپ میکنه لطفاً بنده را راهنمایی بفرمایید کارم گیر همین یک مورد هست .

    if ( $message =$_GET['message']){
    $searchQuery = $message ;
    $getroobat = mysqli_query($db, "SELECT * FROM roobat WHERE sooal LIKE '%$searchQuery'");
    error_reporting(0);
    while($row = mysqli_fetch_array($getroobat)){
    echo $row['javab'];
    }
    }

ثبت پرسش جدید
الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 5 سال پیش مطرح شد
1

خب شما دستور

echo $row['javab']

داخل while گذاشتین
کار while همینه، همه رو چاپ میکنه تا به آخر برسه

میتونید while نذارین یا آخر دستور SQL یه LIMIT 1 بذارین


سپهر
@sepehrstar20 5 سال پیش مطرح شد
0

آقا یک دنیا ممنون از شما حل شد همون LIMIT ۱ بود که فرمودید
یک سوال دیگه اگر بخواهیم میزان حساسیت جستجو را به شکل درصدی هم میشه تنظیم کرد ؟


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 5 سال پیش مطرح شد
1

@sepehrstar20
خواهش میکنم
درصد حساسیت نه فکر نکنم اون دیگه میره تو فاز هوش مصنوعی

WHERE CustomerName LIKE 'a%'    Finds any values that start with "a"
WHERE CustomerName LIKE '%a'    Finds any values that end with "a"
WHERE CustomerName LIKE '%or%'  Finds any values that have "or" in any position
WHERE CustomerName LIKE '_r%'   Finds any values that have "r" in the second position
WHERE CustomerName LIKE 'a__%'  Finds any values that start with "a" and are at least 3 characters in length
WHERE ContactName LIKE 'a%o'    Finds any values that start with "a" and ends with "o"

https://www.w3schools.com/sql/sql_like.asp


سپهر
@sepehrstar20 5 سال پیش مطرح شد
0

بنده نمیخواهم خیلی تخصصی باشه
فقط اگر در جمله ای که در جستجو وارد میشه یک کلمه از اون هم مشابه ای در دیتابیس باشه را چاپ کنه همین


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 5 سال پیش مطرح شد
0

@sepehrstar20

این حالت مناسب تره

SELECT * FROM roobat WHERE sooal LIKE '%$searchQuery%'

یعنی اگه کلمه ای مشابه اون کلمه جستجو شده باشه برمیگردونه


سپهر
@sepehrstar20 5 سال پیش آپدیت شد
0

آدرس ربات تست و نمونه بنده : اینجا هست
بله بنده هم اون % دومی را اضافه کردم
اما مشکل اینجا هست که به شکل مثال اگر ازش سوال بشه (قیمت سایت پزشکی ) جواب میده اما سوال بشه (سایت پزشکی چطور ) نمیتونه جواب بده و باید یک مقداری در دیتا بیس داشته باشه البته شما تا همین مقدار هم به بنده خیلی کمک کردید

در کل فکر کنم با کمی ارتقا بتوانم برای پشتیبان سایت خودم قرار بدم چون هم میتواند برای سرگرمی استفاده کرد و هم الان قابلیت ترجمه گوگل و ساعت آنلاین ، هواشناسی و.... را دارد و قابلیت های دیگه هم میخواهم اضافه کنم
نمونه اول
https://d-abdoli.ir/bot/


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 5 سال پیش مطرح شد
0

@sepehrstar20

اطلاعات زیادی ندارم ولی خب این روش رو تست کنین
یعنی بیاین وقتی کاربر سرچ کرد : قیمت سایت پزشکی
شما با توجه به اسپیس اونو به سه تا کلمه تقسیم کنید، یعنی قیمت و سایت و پزشکی
بعد با هر سه تاش اون دستور رو اجرا کنین
نمیدونم جواب بده یا نه، با آزمون و خطا میتونین به نتیجه خوبی برسین


سپهر
@sepehrstar20 5 سال پیش مطرح شد
0

تشکر از راهنمایی شما
بنده هم میخواهم همین کار را انجام بدم اما تا این که چیزی شبیه به ربات های سایت دیالوگ diaalog.ir بشه خیلی راه دارد و تنهایی برای بنده که از php زیاد اطلاع ندارم چالش بزرگی هست سال 85 با vb6 این کار را در هنرستان انجام دادم و یک ایده قدیمی بود که میخواستم تحت وب اجرایش کنم


mahtdy
تخصص : php and asp.net core
@mahtdy 5 سال پیش مطرح شد
0

@sepehrstar20
سلام
ایده بسیار جالبیه..
شما میتونی کلمات رو با اسپیس جدا کنی و در یه ارایه بریزی
بعدش بصورت اول کل کلمه بعدش کم کردن یه کله از اخر و بعد کم کردن یه کلمه از اول کوئری بگیری
بعدش میتونی دو کلمه از اخری و بعد دو کلمه از اول کوئری بگیری و همینطور الی آخر
مثلا
سایت پزشکی چطور

  1. سایت پزشکی
  2. پزشکی چطور
    3 سایت
  3. چطور
    البته میتونی یه جدول از کلمات کلیدی ایجاد کنی براساس اونا سرچ کنی..
    اگه کد ها و دیتا بیستون رو ببینم میتونم کمک بیشتری بکنم
    اگه اگه تمایل داشتین

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام