-
September 16th, 2012, 05:55
#1
ساخت یک صفحه مانند انجمن ها
سلام
من قصد دارم یه صفحه ی ساده ای که شبیه به انجمن باشه رو بسازم
واسه این کار من از دیتابیس استفاده میکنم که دوتا جدول واسش ساختم
اسم تیبل ها : talar و sub_talar
خب تا الان من با یک foreach اومدم توی صفحه php ایم، تالار ها رو بنمایش در آوُردم که تا اینجا هیج مشکلی ندارم
و حالا من میخوام زیر مجموعه هایی واسه تالار هام بسازم، یعنی اینکه مثلآ تالار موبایل، چندتا زیر مجموعه بنام nokia , sony و ... داشته باشه
الان من مشکل اینه که چطور میونم تعیین کنم که زیرمجموعه رو طوری تعیین کنم در تالار مربوط به خودش قرار بگیره
ممنون میشم در این مورد راهنماییم کنید.
-
-
September 16th, 2012 05:55
# ADS
-
September 22nd, 2012, 00:06
#2
عضو انجمن
پاسخ : ساخت یک صفحه مانند انجمن ها
چقدر کلی سوال پرسیدید شما !
من متوجه نشدم ، کاملتر توضیح بدید راحت تر به پاسخ می رسید
اما در کل بابت چیزی که استنباط کردم ، یه فیلد در sub_talar بسازید و در اون شناسه talar مربوط به هر کدوم رو قرار بدید
در حلقه for شناسه های اون تالار رو از ساب_تالار فراخوانی کنید
-
تعداد تشکر ها از sir-mammad به دلیل پست مفید
-
September 26th, 2012, 13:03
#3
پاسخ : ساخت یک صفحه مانند انجمن ها

نوشته اصلی توسط
sir-mammad
چقدر کلی سوال پرسیدید شما !
من متوجه نشدم ، کاملتر توضیح بدید راحت تر به پاسخ می رسید
اما در کل بابت چیزی که استنباط کردم ، یه فیلد در sub_talar بسازید و در اون شناسه talar مربوط به هر کدوم رو قرار بدید
در حلقه for شناسه های اون تالار رو از ساب_تالار فراخوانی کنید
ممنون داداش بابت پاسخگویتون
داداش من توی دیتابیسم دوتا تیبل دارم
1- talar
2- sub_talar
فیلداش هم :
مال talar:
id, talarname, talardes
مال sub_talar:
id, subname, subdec, talar_id
خب الان من اومدم تمامی تالار که داخل دیتالیس هسش (تیبل talar) رو با یک foreche توی صفحم به نمایش در آوردم...
حالا من میخوام نام هایی که داخل تیبل sub_talar با مقدار talar_id تیبل talar هسش رو بنمایش در بیارم
یعنی هر ساب تالار در زیر تالار خودش نمایش بده
ممنون میشم راهنماییم کنید
-
-
September 26th, 2012, 14:07
#4
عضو انجمن
پاسخ : ساخت یک صفحه مانند انجمن ها
این چیزی که میخوای رو بر اساس تعداد بازدید ها و تعداد تالار ها و تعداد زیر تالار ها به چند صورت میتوان پیاده سازی کرد ولی حالت نورمالش رو من برات به صورت شبه کد پیاده سازی میکنم از روش چیزی که میخوای رو طراحی کن.
کد PHP:
$subforums = array();
$result = query('SELECT * FROM SUBFORUMS');
while($Row = mysql_fetch($result))
$subforums[$result['talar_id']][] = $result;
$result = query('SELECT * FROM FORUMS');
while($Row = mysql_fetch($result))
{
echo $Row['talarname'];
if(isset($subforums[$Row['id']]))
foreach($subforums[$Row['id']] as $sub)
echo $sub['subname'] . '<br />' . $sub['subdec'];
}
اینطوری میتونی با ۲ تا کوئری لیست انجمن ها و زیر انجمن هاتو نشون بدی منتها اگه تعداد خیلی زیاد باشه تکنیک دیگه ای داره که خیلی پیچیده تره و البته اگه خواستی میتونم راهنماییت کنم
-
تعداد تشکر ها از parsspace به دلیل پست مفید
-
September 26th, 2012, 18:22
#5
پاسخ : ساخت یک صفحه مانند انجمن ها

نوشته اصلی توسط
parsspace
این چیزی که میخوای رو بر اساس تعداد بازدید ها و تعداد تالار ها و تعداد زیر تالار ها به چند صورت میتوان پیاده سازی کرد ولی حالت نورمالش رو من برات به صورت شبه کد پیاده سازی میکنم از روش چیزی که میخوای رو طراحی کن.
کد PHP:
$subforums = array();
$result = query('SELECT * FROM SUBFORUMS');
while($Row = mysql_fetch($result))
$subforums[$result['talar_id']][] = $result;
$result = query('SELECT * FROM FORUMS');
while($Row = mysql_fetch($result))
{
echo $Row['talarname'];
if(isset($subforums[$Row['id']]))
foreach($subforums[$Row['id']] as $sub)
echo $sub['subname'] . '<br />' . $sub['subdec'];
}
اینطوری میتونی با ۲ تا کوئری لیست انجمن ها و زیر انجمن هاتو نشون بدی منتها اگه تعداد خیلی زیاد باشه تکنیک دیگه ای داره که خیلی پیچیده تره و البته اگه خواستی میتونم راهنماییت کنم
ممنون داداش
من کدی که دادین رو جایگزین کردم، ولی فقط تالار هارو نشون میده و زیرتالار ها رو نشون نمیده
یعنی این کد بی تاثیر بود:
کد PHP:
if(isset($subforums[$Row['id']]))
foreach($subforums[$Row['id']] as $sub)
echo $sub['subname'] . '<br />' . $sub['subdec'];
و ارروزی هم ندارم (display_error فعال هستش)
-
-
September 26th, 2012, 20:38
#6
عضو انجمن
پاسخ : ساخت یک صفحه مانند انجمن ها
ye print_f begir bebin ok e?
print_f($subforums);
-
-
October 20th, 2012, 14:35
#7
پاسخ : ساخت یک صفحه مانند انجمن ها
ممنون دوستان
من الان یه اسکریپت simple forum ایی رو پیدا کردم و خیلی ساده هم هسش و درک کدهایی که درونش قرار داده واسم راحته
فقط اون قسمتی که کوئری گرفته که ساب فروم ها اضافه شده رو ندونستم چی به چیه...
سکریپت بدون هیچ مشکلی کار میکنه، فقط یه توضیح در مورد کوئری زیر میخوام
ممنون میشم کمکم کنید 
کد:
<?php
$dn1 = mysql_query('select c.id, c.name, c.description, c.position, (select count(t.id) from talar_topics as t where t.parent=c.id and t.id2=1) as topics, (select count(t2.id) from talar_topics as t2 where t2.parent=c.id and t2.id2!=1) as replies from talar_categories as c group by c.id order by c.position asc');
$nb_cats = mysql_num_rows($dn1);
while($dnn1 = mysql_fetch_array($dn1))
{
?>
<tr>
<td class="forum_cat"><a rel="nofollow" href="list_topics.php?parent=<?php echo $dnn1['id']; ?>" class="title"><?php echo htmlentities($dnn1['name'], ENT_QUOTES, 'UTF-8'); ?></a>
<div class="description"><?php echo $dnn1['description']; ?></div></td>
<td><?php echo $dnn1['topics']; ?></td>
<td><?php echo $dnn1['replies']; ?></td>
<?php
if(isset($_SESSION['username']) and $_SESSION['username']==$admin)
{
?>
<td><a rel="nofollow" href="delete_category.php?id=<?php echo $dnn1['id']; ?>"><img src="<?php echo $design; ?>/images/delete.png" alt="Delete" /></a>
<?php if($dnn1['position']>1){ ?><a rel="nofollow" href="move_category.php?action=up&id=<?php echo $dnn1['id']; ?>"><img src="<?php echo $design; ?>/images/up.png" alt="Move Up" /></a><?php } ?>
<?php if($dnn1['position']<$nb_cats){ ?><a rel="nofollow" href="move_category.php?action=down&id=<?php echo $dnn1['id']; ?>"><img src="<?php echo $design; ?>/images/down.png" alt="Move Down" /></a><?php } ?>
<a rel="nofollow" href="edit_category.php?id=<?php echo $dnn1['id']; ?>"><img src="<?php echo $design; ?>/images/edit.png" alt="Edit" /></a></td>
<?php
}
?>
</tr>
<?php
}
?>
فقط از یک کوئری اومده کلی رکورد بیرون کشیده که این کار درکش خیلی واسم سخت شده..
راسی در مورد این که گفته مثلآ c.id ، این c یعنی چی ؟
as توی mysql به چه درد میخوره ؟ (یعنی اومده به اصطلاح foreche کرده ؟)
و در آخر، میشه این کوئری که قرار داده رو بازش کرد و تبدیل به چند کوئری کنیم ؟ (واسه درک بهتر کد)
اگه امکانش هس، چطور ؟
ویرایش توسط Sp|R|T : October 20th, 2012 در ساعت 14:38
-
-
October 23rd, 2012, 04:46
#8
پاسخ : ساخت یک صفحه مانند انجمن ها
دوستان کسی نیست یک توضیح مختصری در مورد اینجور کوئری ها بده ؟ 
کد:
$dn2 = mysql_query('select t.id2, t.authorid, t.message, t.timestamp, u.username as author, u.avatar from talar_topics as t, users as u where t.id="'.$id.'" and u.id=t.authorid order by t.timestamp asc');
چرا قبل فیلدا بعضی u و بعضی t گذاشته ؟
کلآ میخوام بدونم این کوئری چطور اجرا میشه
اومیدوارم که بی جواب نمونه...
-