مشکل جستجو

darkmohammad

New Member
سلام

من ی دیکشنری طراحی کردم ک وقتی طرف تو فیلد کلمه ی کلمه رو میزنی ی autocomplete میاد و کلمه + 5 تا کلمه مشابهش رو میاره

ارسال و دریافت هم به صورت ajax هست، الان مشکل من اینه ک وقتی مثلا یکی میزنه تست ی کلمه ای مثل
HTML:
جنگل  .  زمين  جنگلي  .  درختستان
میاد ک وقتی سرچ رو میزنم نمیره دیتابیس رو ببینی اصلا!

کد autocomplete هم آماده هس و پک شده!

از دوستان کسی ی کد ساجست(autoccomplete) نداره م بشه ادیتش کرد ینی کلمه رو نشون بده ولی مقدارش رو id برارم ک بره از رو id چک کنه؟

یا ی راه حل ک بشه سرچ اون چنتا کلمه رو انجام داد؟با کلا ی راه حل؟

ممنون
 

MASIHA68

Member
کدوتون رو بذارین یه نگاهی بندازیم
این دیکشنری توسط php طراحی شده یا ... توضیحات بیشتر لطفا
 

darkmohammad

New Member
سلام

بله php

انتخاب کلمه
[PHPS] if($_GET['lang'] == 1)

$Sql = mysql_query("SELECT * FROM `words` WHERE `English` = '".$_GET['word']."' ") ;

else

$Sql = mysql_query("SELECT * FROM `words` WHERE `Farsi` ='".utf8_encode($_GET['word'])."' ") ;

[/PHPS]
 

MASIHA68

Member
اگه می خوای توی دیتابیس کلمات مشابه رو پیدا کنی از like استفاده کن و نتایج مشابه رو بر می گردونه ... اون چیزی هم که من بین کد sql شما دیدم فقط داره یه سرچ یک ارایه ای انجام میده و نتیجه اش فقط یک کلمه است
چک کردن از روی ای دی هم به درد نمی خوره چون ای دی یه عدد یکتاست و فقط یک کلمه رو بر می گردونه
پیشنهاد من همون like و اینکه سعی کنی مثل گوگل که وقتی یه چیزی رو تایپ می کنی خودش کلمه ها رو پیشنهاد ... تو هم همون سیستم رو پیاده کنی
 

darkmohammad

New Member
دوست من مشکل من فقط سلکت کردن اون کلمه هست!

لایک رو واسه کلمات مشابه بکار میبرن

مثل این کد ک برای ساجست هست

[PHPS]

$text = $mysqli->real_escape_string($_GET['term']);
if(preg_match("/^[a-zA-Z0-9]+$/", $_GET['term']))
{
$query = "SELECT * FROM Words WHERE English LIKE '%$text' ORDER BY English ASC LIMIT 0,10";
$query1 = "SELECT * FROM Words WHERE English ='$text'";
$result1 = $mysqli->query($query1);
$row1 = $result1->fetch_assoc();

$result = $mysqli->query($query);
$json = '[';
$first = true;
$json .= '{"value":"'.$row1['English'].'"},';

while($row = $result->fetch_assoc())
{
$ex = explode(',',$row['English']);
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$ex[0].'"}';
}
$json .= ']';
echo $json;

[/PHPS]

بازم ممنون
 

ziXet

مدیر انجمن PHP/MYSQL
من از یه اسکریپت برای ساجسشن دیکشنری خودم استفاده کردم که دیکشنری با فایل میگرفت و فقط برای کلمات انگلیسی هست. (لینکش تو امضام هست).
ولی برای فارسی چیزی ندیدم تاحالا!
 

darkmohammad

New Member
سلام

اولا ک دیکشنریتون بسیار زیبا و جالب هست

ساجست الان کاملا کار میکنه چ فارسی چ انگلیسی

مشکل الان با کلماتی هست ک وقتی فارسیشون رو میزنم چون کوئری برای ساجست با LIKE هست مثلا ی کلمه رو میاره مثل
HTML:
جنگل  .  زمين  جنگلي  .  درختستان

و دستوری ک میره تو دیتابیس میگرده میشه
[PHPS] $Sql = mysql_query("SELECT * FROM `words` WHERE `Farsi` ='".utf8_encode($_GET['word'])."' ") ;[/PHPS]

ک کار نمیکنه!اصلا داستان شده

من ی کاریم کردم!با explode ساجست رو جدا کردم و وقتی طرف میزنه تست فقط ساجست میده درختستان ولی وقتی موقع سرچ میزنم LIKE 'درختستان' دیگه نمیاره
 

جدیدترین ارسال ها

بالا