PDA

View Full Version : سوال: نمایش مطالب مرتبط



7asemoon
یک شنبه 21 تیر 1394, 02:34 صبح
من توی فروم جستجو کردم و به نتیجه نرسیدم برای همین خودم این تاپیک رو ایجاد کردم
من میخام برای مطالب سایتم وقتی کاربر روی خبری کلیک میکنه مطالب مشابه با اون خبر در زیر خبر براش لیست بشن
از دوستان تقاضا دارم اگر میتونن راهنمایی کنن راهنمایی شون همراه با کد باشه

7asemoon
یک شنبه 21 تیر 1394, 09:03 صبح
از دوستان تقاضا دارم لطفا یک پاسخ مبسوط بدن

thacker
یک شنبه 21 تیر 1394, 12:15 عصر
به نظرم راه مناسب اینه که برای مطالبتون تگ قرار بدین و زمان نمایش مطلب ، تگ های اون مطلب رو با تگ های مطالب دیگه مقایسه کنید و اون هایی رو که تگ های یکسان دارند رو فراخوانی کنید

7asemoon
یک شنبه 21 تیر 1394, 15:43 عصر
به نظرم راه مناسب اینه که برای مطالبتون تگ قرار بدین و زمان نمایش مطلب ، تگ های اون مطلب رو با تگ های مطالب دیگه مقایسه کنید و اون هایی رو که تگ های یکسان دارند رو فراخوانی کنید

مطالبم تگ دارن ولی خیلی منطقی نیست که براساس تگ مطالب مشابه آورده بشه.

H:Shojaei
یک شنبه 21 تیر 1394, 16:00 عصر
بالاخره باید بر اساس یک یا چند خصوصیت باشه که توی مطالب دیگه جستجو بزنید برای مطالب مشابه این رو هم خودتون باید تشخیص بدین که تگهاش باشه یا نامش یا مثلا رنج قیمت اگر کالا هست یا هرفاکتور دیگه...

amg_123
یک شنبه 21 تیر 1394, 19:58 عصر
خب میتونی مثل پلاگینی که تو وردپرس هست کار کنی. اگه اشتباه نکنم seo by yoast چنین چیزی داشت که رویه سئو سایتم تاثیر مثبت میزاشت.
نحوه کارش اینجوریه که یه textbox بود، خودت عنوان مطالبه مشابه رو میزدی هر کدوم که میخواستی اد میکردی تا نشون داده شه(البته textbox به صورت ajax و Autocomplete باید باشه تا خوب از آب دربیاد).
روش دیگه ای که دقیق باشه خیلی سخت و وقت گیره و پردازش اضافی به برنامه تحمیل میکنه.
به نظر من مثل این پلاگینه عمل کنید.

Unique
یک شنبه 21 تیر 1394, 21:56 عصر
tag یا همون برچسب بهترین روشه. مخصوصا چون با خبر روبرو هستیم عموما باید بر اساس برچسب های متشابه و اول بر اساس فراوانی برچسب و سپس تاریخ انتشار نمایش داده بشه.

Mohammadsgh
دوشنبه 22 تیر 1394, 04:30 صبح
شما عنوان نوشته رو دارید.اون رو با دستور like در mysql استفاده کنید و خیلی آسون با یک query میتونید نوشته های مشابه رو پیدا کنید.در مورد like جستجو کنید

Unique
دوشنبه 22 تیر 1394, 20:33 عصر
من نمیدونم چرا دوستان فکر میکنن با query دادن و بررسی عنوان خبر های دیگه میشه خبر های مرتبط را پیدا کرد. خیلی از کلمات ممکنه چند مفهوم داشته باشن یا برای موضوعات مختلف یکسان باشن. اینکه از طریق عنوان خبر بخواهیم خبر های مرتبط را شناسایی کنیم احتمال خطا توش خیلی خیلی زیاده.

7asemoon
سه شنبه 23 تیر 1394, 00:24 صبح
آره فکر کنم با استفاده از تگ مطالب بشه نتیجه مناسب تری گرفت البته به شرطی که تگ ها اصولی وارد شده باشه

7asemoon
چهارشنبه 24 تیر 1394, 10:41 صبح
من کد زیر رو برای مطالب مرتبط با استفاده از تگ در سایتم قرار دادم ولی مشکلی که دارم اینه که خود مطلب رو هم در مطالب مرتبط میاره


$most = $db -> fetch_all("SELECT * FROM `tbl_posts` WHERE post_tag LIKE '%$tag%' LIMIT 0,3 ");

7asemoon
چهارشنبه 24 تیر 1394, 10:44 صبح
منظورم از خود مطلب اینه که برای مثال :
مطلب یک تگ:1و2و3
مطلب دو تگ:9و1و5
مطلب سه تگ:2و6
مطلب چهار تگ:8

من وقتی روی مطلب یک کلیک میکنم در مطالب مرتبط باید دو و سه رو نشون بده ولی در عمل هم خودش و هم دو و سه رو نشون میده چطور باید کد رو تغییر بدم که خودش رو نشون نده

7asemoon
چهارشنبه 24 تیر 1394, 10:49 صبح
والبته مشکلی که این کد داره اینه که پست هایی که تگ ندارن رو در زیر مطالب بدون تگ نشون میده. به این صورت

مطلب یک تگ:x,y,u
مطلب دو تگ: x
مطلب سه تگ:
مطلب چهار تگ:

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

H:Shojaei
چهارشنبه 24 تیر 1394, 10:57 صبح
توی کوئری این مطلب رو از نتایج حذف کنید به این صورت که:
SELECT * FROM `tbl_posts` WHERE post_tag LIKE '%$tag%' and id<>$thisPostId LIMIT 0,3
میگیم اونهایی که مشابه این هستن ولی خود این نباشه...
$thisPostId آی دی مطلبی که واسش برای مطالب مرتبط جستجو کردینه

7asemoon
چهارشنبه 24 تیر 1394, 11:02 صبح
توی کوئری این مطلب رو از نتایج حذف کنید به این صورت که:
SELECT * FROM `tbl_posts` WHERE post_tag LIKE '%$tag%' and id<>$thisPostId LIMIT 0,3
میگیم اونهایی که مشابه این هستن ولی خود این نباشه...
$thisPostId آی دی مطلبی که واسش برای مطالب مرتبط جستجو کردینه

دست تون درد نکنه به خوبی عمل کرد

7asemoon
چهارشنبه 24 تیر 1394, 11:59 صبح
این مشکل هنوز پابرجاست


والبته مشکلی که این کد داره اینه که پست هایی که تگ ندارن رو در زیر مطالب بدون تگ نشون میده. به این صورت

مطلب یک تگ:x,y,u
مطلب دو تگ: x
مطلب سه تگ:
مطلب چهار تگ:

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

H:Shojaei
چهارشنبه 24 تیر 1394, 12:40 عصر
این رو هم اضافه کنید:
and post_tag<>''

7asemoon
چهارشنبه 24 تیر 1394, 15:51 عصر
این رو هم اضافه کنید:
and post_tag<>''

هیچ تغییری نکرد

SELECT * FROM `tbl_posts` WHERE post_tag LIKE '%$tag%' AND id<>$id AND post_tag<>'' LIMIT 0,3 "

SA_Developer
چهارشنبه 24 تیر 1394, 18:34 عصر
مشکلی که این کد داره اینه که پست هایی که تگ ندارن رو در زیر مطالب بدون تگ نشون میده
وقتی مطلبتون تگ نداره اصلا چرا باید این کوئری اجرا بشه که مطالب مرتبطش رو پیدا کنه؟ معلومه که مطلب مرتبط براش نیست.
اینجا میتونید عنوان رو بررسی کنید یا اینکه بنویسید "مطلب مشابه یافت نشد".

7asemoon
چهارشنبه 24 تیر 1394, 22:15 عصر
وقتی مطلبتون تگ نداره اصلا چرا باید این کوئری اجرا بشه که مطالب مرتبطش رو پیدا کنه؟ معلومه که مطلب مرتبط براش نیست.
اینجا میتونید عنوان رو بررسی کنید یا اینکه بنویسید "مطلب مشابه یافت نشد".

خب من دستور کوئری رو نوشتم توی پست ها هست نباید اجرا بشه ولی داره اجرا میشه. چی کنم که نشه روی کد توضیح بدین

H:Shojaei
پنج شنبه 25 تیر 1394, 11:21 صبح
دوستمون درست میگن من یه اشتباه هم مرتکب شدم اینجا وقتی تگی نیست اصلا مطلب مشابهی هم نیست به این صورت باید جلوی اجرای کوئری رو بگیرید...


if($post['tag']!='')
$most = $db -> fetch_all("SELECT * FROM `tbl_posts` WHERE post_tag LIKE '%$tag%' LIMIT 0,3 ");

7asemoon
پنج شنبه 25 تیر 1394, 12:05 عصر
دوستمون درست میگن من یه اشتباه هم مرتکب شدم اینجا وقتی تگی نیست اصلا مطلب مشابهی هم نیست به این صورت باید جلوی اجرای کوئری رو بگیرید...


if($post['tag']!='')
$most = $db -> fetch_all("SELECT * FROM `tbl_posts` WHERE post_tag LIKE '%$tag%' LIMIT 0,3 ");


دست تون درد نکنه
یه سوال اینکه برای استفاده از and محدودیتی در کد sql نداریم
منظورم تعداد and هست

H:Shojaei
پنج شنبه 25 تیر 1394, 13:14 عصر
خیر and or not l هیچکدوم از عملگرها محدودیتی به لحاظ تعداد تا جایی که من میدونم ندارن...