آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

موردی عجیب در نمایش نتیجه ی جستجو در دیتابیس (پروژه ی dictionary) - (حل شد)

mhpakdel  10 سال پیش  10 سال پیش
0 0

درود بر همگی دوستان
موردی که برای من اتفاقی پیش اومد و خواستم در جریان بذارم. در بخش پروژه دیکشنری خواستم از کدها برای بخشی از سایتی که در حال طراحی اون هستم استفاده کنم و اونو توسعه بدم و یه بخش جستجو راه اندازی کنم. اما با مشکلی عجیب برخورد کردم. دستور SQLی که در پروژه ی دیکشنری استفاده شده در فایل feed که به صورت Ajax از دیتابیس خونده میشه، کلماتی که با حروف انگلیسی E , H , L و O شروع میشن رو در نتایج جستجو نمایش نمیده و حتی کلماتی که وسط اونها این حروف وجود داره هم نمایش نمیده!! میتونید امتحان کنید.
قبلا که آموزش ها رو میدیدم به این مشکل برنخوردم چون یا در دیتابیس کلماتی که شروعش با این حروف باشه نبود و یا این موارد اصلا تست نشد!

اما اگه بعد از این حروف حرف دیگه ای رو برای جستجو وارد کنیم اون موقع نتایج مرتبط نمایش داده میشه.
مثال: در دیتابیس کلمه ی OUTPUT وجود داره. اما با وارد کردن حرف O هیچ نتیجه ای نمایش داده نمیشه ولی بعد که حرف U رو هم وارد کردیم (یعنی در باکس جستجو OU وارد شده باشه) در نتیجه، کلمه ی OUTPUT نمایش داده میشه. یعنی برای نمایش OUTPUT باید OU رو تایپ کنیم و با تایپ تنها حرف O نتیجه ای در بر نداره!!

این مورد تنها برای حروفی که ذکر کردم وجود داره.
دوستان من هیچ فیلتری رو از سمت دیتابیس MySQL یا کد دستور SQL انجام ندادم و حتی دقیقا پروژه دیکشنری استاد رو دوباره لود و امتحان کردم. مطمئنم این یک مشکل فنی در ساختار کدها یا دیتابیس هست یا اینکه واقعا من موردی رو جا انداختم که خوشحال میشم دوستان و اساتید در این مورد راهنمایی کنن.

0 0
در پست چهارم علت رو توضیح دادم. هرچند فقط پیداش کردم ولی دلیلش رو نفهمیدم (10 سال پیش)
 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
reza piry ghadim  10 سال پیش
+1 0

برای سرچ استاد در کوری های خود از LIKE  استفاده کرده بود .

من خودم وقت نکردم تست کنم ولی این ساختار کد SQL رو هم امتحان کنید .

 
SELECT * FROM 'mytable' WHERE INSTR('mycol', 'abc') > 0

 

0 0
نه این دستور هم جواب نداد. کلا خطا میگیره از این دستور. عیناً همین دستور شما رو با تغییر جدول و ستون نوشتم. اما واقعا موندم چرا دستوری که به وسیله LIKE نوشته شده باگ داره. دوستان اگه براشون مقدور هست این مورد رو چک کنن. خیلی عجیبه. ممنونم (10 سال پیش)
0 0
دلیلش رو بالاخره متوجه شدم. پست سوم رو ببینید و نظرتون رو بگید. ممنونم (10 سال پیش)
پاسخ به سوال 
WS  10 سال پیش
+1 0

دوست عزیز فکر نکنم مشکلی داشته باشه ، من کد ها رو چک کردم مگراینکه منظور چیز دیگه ای باشه. تفاوتی در حروف کوچک و بزرگ نداره ،شما دقیقا کد های پروژه را استفاده کردید یا اینکه تغییراتی دادید؟

0 0
ممنونم از پاسختون. دلیل رو بالاخره پیدا کردم. نه مشکل از کدهای من بود. نه مشکل از syntax. دلیل رو در پست بعدی مفصل گفتم. امتحانش کنید. (10 سال پیش)
پاسخ به سوال 
mhpakdel  10 سال پیش
+1 0

بالاخره به هر بدبختی ای بود علتش رو پیدا کردم. هیچ جا مطلبی راجع بهش گفته نشده بود یا من نتونستم پیدا کنم
علت خیلی عجیبه. اول این اسکرین شات رو ببینید:

شما هر عبارتی رو در رکورد اول دیتابیس بنویسید از حوزه ی جستجو خارج میشه! شاید بگید دارم اشتباه میکنم اما امتحان کنید. حتما تا به حال براتون اتفاق نیوفتاده. دلیل این که برای من حروف H , E , L , O در نتیجه جستجو نمیومد همین بود که اولین رکورد دیتابیسم کلمه ی hello بود و این حروف رو از حوزه ی جستجو خارج می کرد.

من برای اطمینان کلمه ی رکورد اولی رو عوض کردم. مثلا گذاشتم roya و با این کار حروف R , O , Y , A در نتیجه ی جستجو دیده نمی شدند!
جالب اینجاست که برای hello اگه عبارات زیر رو جستجو کنید هیچی پیدا نمیکنه:
h , he , hel , hell , e , el , ell , ello , l , ll , llo , lo و خود hello !!

با این تفاسیر دیگه نباید رکورد اول دیتابیس رو یکی از اطلاعاتمون قرار بدیم و باید اونو خالی نگه داربم یا یک کاراکتر بی استفاده در نظر بگیریم.

آیا این یک ارور منطقی هست؟ دلیلش چیه؟
ممنون میشم دوستانی که اطلاع دارند در موردش ما رو راهنمایی کنن اگه ممکنه و با تشکر از دوستانی که این مورد رو چک کردن و نظرشون رو گفتند.

پاسخ به سوال 
WS  10 سال پیش
0 0

سلام برادر ، به نظر منطقی نمیاد.دلیلی نداره اولی حذف بشه.

من چک کردم مشکلی نداشت،فقط شما اگه داری اطلاعات رو در یک ارایه می گیری و اگه داری از for  استفاده میکنی،ارایه از صفر شروع میشه.

0 0
من کل پروژه خودم رو پاک کردم. سورس پروژه موجود در سایت که کدهای خود استاد آقاجانی هست رو لود کردم. باز هم همین مشکل وجود داره. نمی دونم شما چه کدی نوشتین. اما با کدهای استاد و این آموزش این مشکل برقراره. اگه منظورتون اینه که کد سورس سایت هم ایراد داره، ممنون میشم بگین چیکار کردین که کار میکنه (10 سال پیش)
0 0
دوست عزیز من همون کد های پروژه دیکشنری رو بدون تغییر چک کردم و کد های اقای اقاجانی مشکلی نداشت. مطمعنا مشکل از چیز دیگری هست. به نظرم دیتابیس رو ترانک کن و بعدش دوباره چک کن ،اگر کد خاصی رو نوشتی بزار چک کنیم و گرنه کد های پروژه دیکشنری که در سایت هست بدون هیچ تغییری جواب میده. (10 سال پیش)
+1 0
با ترانک دیتابیس مشکل حل شد. ممنون از اینکه توجه داشتین. ولی متاسفانه معلوم نشد چرا دیتابیس قبلی و همچنین دیتابیس آنلاین که از local من import شده بود، مشکل داشت. احتمالا یه باگی هست موقع ساخت دیتابیس که همیشه هم رخ نمیده (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .