• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
فیلتر کردن بر مبنای یک تگ خواص در دیتا بیس
#1
با سلام دوستان من می خواستم وقتی برای نمایش مطلب در سایت اقدام می کنم ما 4 تا تگ داریم مثلاً اخبار ، فناوری ، آموزش ، عمومی همه این مطالب هم داخل یک جدول ذخیره شده اند فقط در تگ ها فرق دارن من می خواهم فیلتر کنم مثلاً 10 مطلب آخر با تگ اخبار ( تو دیتا بیس نوشتم News) رو نشون بده و بقیه که تگ نیوز نداره نشون نده!
لطفاً این رو به دو صورت اگر امکان داره توضیح بدین :1) داخل سلول چند تگ هست یکیش اخبار هست مثلاً با " یا # از هم جدا شده اند نوع 2) که فقط داخل سلول یک کلمه هست اخبار
بسیار ممنون
  پاسخ
تشکر شده توسط :
#2
دوستان یعنی امکان این کار نیست که دوستان هیچ کدامشان راهنمایی نمی کنند یا کاره وقت گیری هست ؟ یا من منظور را نرسانده ام ؟ می خواهم مثلاً تو ستون Tag نوشته Tech فقط Tech ها به نمایش در بیان !
  پاسخ
تشکر شده توسط :
#3
بسم الله الرحمن الرحیم
سلام
این چیزی که می خواهید نباید خیلی سخت باشه / به این لینک ها نگاه کن (هر سه تاش به کارت می یاد):
http://www.w3schools.com/sql/sql_select.asp
http://www.w3schools.com/sql/sql_where.asp
http://www.w3schools.com/sql/sql_orderby.asp
  پاسخ
تشکر شده توسط : saeidgi
#4
دوست عزیز متوجه نمیشم چی میخوای !؟
یعنی توی دیتابیست یک سلول هست که توش متن نوشته شده و یه سلول دیگه که توش نوشته مثلا اخبار یا آموزش یا ... ؟
یا اینکه توی یه سلول هم متن رو داری هم نوع مطلبتو !؟
منظورت اینه :
کد:
<news> خبر درباره سایت </news>
یه نمونشو بذاری شاید بتونم کمک کنم!
  پاسخ
تشکر شده توسط :
#5
(۱۳۹۰ اردیبهشت ۰۴, ۰۷:۵۶ ب.ظ)Bojbaj نوشته: دوست عزیز متوجه نمیشم چی میخوای !؟
یعنی توی دیتابیست یک سلول هست که توش متن نوشته شده و یه سلول دیگه که توش نوشته مثلا اخبار یا آموزش یا ... ؟
یا اینکه توی یه سلول هم متن رو داری هم نوع مطلبتو !؟
منظورت اینه :
کد:
<news> خبر درباره سایت </news>
یه نمونشو بذاری شاید بتونم کمک کنم!

دوست عزیز شما یک سایت مثل CNET رو فرض کنید که انواع بخش ها رو داره خوب؟
حالا ما یک تو دیتا بیس خودمون یک جدول داریم که تمام پست ها توی ان ذخیره میشن
توی ان جدول چند تا ستون داریم (Title , DATE , Author,Text,Source,TAG,...) ما داخل ستون TAG مطلب مربوط به کدام بخش سایت هست رو مینویسم مثلاً News یا Reviews خوب حالا ما می خواهیم فقط پست های مثلاً 10 پست آخر News رو فقط نشان بدیم دیگه Reviews و ... نشون داده نشن منظور اینه
  پاسخ
تشکر شده توسط :
#6
کد:
SELECT * FROM tbl_Name WHERE `TAG`='NEWS' ORDER BY 'DATE' DESC LIMIT 0,10

اگه درست متوجه شده باشم این کارتو راه میندازه !
  پاسخ
تشکر شده توسط : hosseintdk775 saeidgi
#7
کد پی‌اچ‌پی:
"SELECT id, title, Text, P,P3P FROM posts WHERE TAG= 'Technology' ORDER BY postid DESC"

دوستان ممنون با کد بالا تونستم مشکل رو حل کنم
  پاسخ
تشکر شده توسط :
#8
سلام !
مشکل شما با این روش کوئری گرفتن برطرف میشه ، اما وقتی که در یک فیلد ، فقط یک تگ به کار برده باشید ، یعنی حالت دومی که فرمودید .
اما میتونید از LIKE درکوئریتون استفاده کنید ، مثلاً وقتی در یک فیلد 20تا تگ وجود داره ، شما بگید وقتی که تگ NEWS در اون وجود داشت ...

موفق باشید
  پاسخ
تشکر شده توسط : saeidgi
#9
کلاً طرز نوشتن کوئریت غلطه! صحیحش اینه:
کد پی‌اچ‌پی:
mysql_query"SELECT `id`, `title`, `Text`, `P`,`P3P` FROM `posts` WHERE `TAG` LIKE '%Technology%' ORDER BY `postid` DESC" ); 
از LIKE هم استفاده کردم ، چون همونطور که دوستمون در پست شماره 8 گفت ، این زمانی کاربرد داره که یک تگ دقیقاً همونی باشه که مشخص کردیم اما ممکنه چیز هایی شبیه اون مثل X Technology هم باشه اونوقت اصلاً کار نمی کنه ولی با SQL LIKE میگیم شبیه اون هم بود حتی برابرش هم بود مورد نداره ، در کل هرچی که اون مقدار داخلش وجود داره. ...
غایب
  پاسخ
تشکر شده توسط : saeidgi


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان