PDA

View Full Version : دسته بندي



king-net
دوشنبه 05 اردیبهشت 1390, 21:14 عصر
درود.
من تو پايگاه داده براي دسته بندي 2 تا تيبل دارم يكي براي ذخيره نام هاي دسته ها و آيدي دسته رو توش ذخيره ميكنم اون يكي هم يه تيبل براي اينكه مشخص كنم هر پست مربوط به كدام دسته هاست مثله وردپرس و راش ...
من مشكلي براي دسته بندي هاي پست ندارم تو نمايشش مشكل دارم
من از اين كد استفاده كردم :


<?php
$abc = $db->mq("SELECT * FROM pc WHERE post_cat ='8' ");
while($def = $db->mfa($abc)){
$tt = $def['post_id'];
$lmn = $db->mfa($db->mq("SELECT * FROM `posts` WHERE id='$tt' "));
?>
<div class="title-content">
<a href="?post=<?php echo $lmn['id'];?>"><?php echo $lmn['title'];?></a>
</div>
<?php echo '<img src="'.$lmn['field1'].'">';?>
<?php echo $lmn['content'];?>
<?php
}
?>

كه نشون ميده ولي نميشه محدودش كرد مثلا اين دو تا پست نشون ميده حالا من ميخوام بكنم 2 تا نميشه يعني وقتي
LIMIT 1 رو ميزارم بازم همون دو تا رو نشون ميده.
كسي ميتونه كمك كنه . خيلي لازم دارم كارم گيره بدجوره .

mamali-mohammad
دوشنبه 05 اردیبهشت 1390, 21:21 عصر
$abc = $db->mq("SELECT * FROM pc WHERE post_cat ='8' LIMIT 1");

king-net
دوشنبه 05 اردیبهشت 1390, 21:37 عصر
اون موقعه كه ترتيبشون بهم ميريزه . بر فرض 10 تا پسا داريم تو دسته 10 از كجا بفهميم اين آخريش هست؟

mamali-mohammad
دوشنبه 05 اردیبهشت 1390, 22:31 عصر
$abc = $db->mq("SELECT * FROM pc WHERE post_cat ='8' ORDER BY id DESC LIMIT 1");

اون desc باعث میشه مطالب رو طبق id ها از آخر به اول بزاره

king-net
سه شنبه 06 اردیبهشت 1390, 09:40 صبح
ولي تيبل pc توش دوتا فيلد داره يكي post_id براي آيدي پستها و دوميش post_cat كه توش دسته نوشته رو ذخيره ميكنم به صورت عددي. اين كدي كه شما دادين اينا رو مرتب ميكنه در صورتي اينكه بايد تيبل هاي پست مرتب بشه.

mamali-mohammad
سه شنبه 06 اردیبهشت 1390, 12:31 عصر
آقا من یه راهنمایی برای شما بکنم ( مثال )
شما اومدی یه تیبل به نام cat ساختی که id و cat داره
یه تیبل هم به نام product داری که محصولات رو ذخیره می کنه id و title و date و ... داره
در اینجا زیر مجموعه ها ذخیره میشه
حالا زمانی از پنل مدیریت داری پست میدی ، باید دسته بندی هارو از cat بخونه
و دسته بندی مورد نظر رو در product ذخیره کنه

برای همین شما یه ستون در product درست کن به نام CAT و دسته بندی مورد نظر رو از پنل انتخاب شده در cat هر id ذخیره کن
حالا بجای اینکه بیای محتوای cat رو نمایش بدی ، محتوای product رو بر اساس کار مورد نظر نشون بده
و خیلی راحت از دستور get استفاده کن

king-net
سه شنبه 06 اردیبهشت 1390, 20:42 عصر
مثله اينكه درست منظورمو نرسوندم :ناراحت:
تيبل هاي من
posts براي ذخيره پست ها
cats براي ذخيره نام دسته ها
pc براي اينكه نشون بدم كه مثلا پست 11 مربوط به دسته 5 هستش
من در فرستادنش به پايگاه داده يعني از سي ام اس هيچ مشكلي ندارم درسته مشكلم اينه كه تو قالبم 10 پست آخر رو از مثلا دسته 5 نشون بدم

binyaft
چهارشنبه 07 اردیبهشت 1390, 21:00 عصر
SELECT * FROM `posts`,`category` WHERE `category`.`category-id`='$category' AND `posts`.`post-id`=`category`.`category-id`

king-net
چهارشنبه 07 اردیبهشت 1390, 21:26 عصر
حل نشد متاسفانه

alismith
چهارشنبه 21 اردیبهشت 1390, 16:30 عصر
سلام



و قالبم 10 پست آخر رو از مثلا دسته 5 نشون بدم


چرا شما یه فیلد به جدول پست اضافه نمی کنید و بعد هر وقت که داشتید پستی می فرستادید id اون دسته رو به جدول اضافه کنید
و حالا هر وقت که خواستید می تونید با یه query اون پست هایی که تو فیلد مثلا post_cat_id مقادیر 5 رو دارن انتخاب کنید



10 پست آخر


برای این کار هم که همه استادن دیگه اول order by desc بعد هم حالا با for , while , if یا هر جوری که خواستید یه شمارنده درست کنید و 10 پست آخر رو چاپ کنید

اگه خواستید می تونید اون id مربوط به فیلد post_cat_id رو تو جدول cat سلکت کنید و عنوان cat هم به دست بیارید و در پست ها در زمان نمایش اضافه کنید

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

موفق باشید

king-net
چهارشنبه 21 اردیبهشت 1390, 19:02 عصر
با استفاده از راهنمايي هاي binyaft (http://barnamenevis.org/member.php?106845-binyaft) تونستم جمع و جورش كنم. ممنون از همه ي دوستان كه وقت گذاشتنو جواب دادن در پاسخ به دوست خوبم alismith (http://barnamenevis.org/member.php?180842-alismith) بايد بگم كه من فقط يك دسته رو نميخوام به يك پست مرتبط كنم چندين دسته رو ميخواستم مرتبط كنم كه با يك فيلد جواب نميده.