PDA

View Full Version : سوال: مشکل در نمایش اطلاعات



terrorhell
جمعه 20 دی 1387, 17:31 عصر
سلام دوستان من دارم یک کدی مینویسیم و به یک مشکلی بر خوردم ممنون مشیم راهنمایی کنید ؟

من یک جدول category دارم با فیلدهای id,name,image,subid و یک جدول sub_category دارم با فیلدهای id,name,catid

من تو جدول category بر فرض مثال 4 رکورد وارد میکنم و اونارو تو صفحه اصلی نمایش میدم و تو جدول sub_category هم تعدادی رکورد وارد میکنم .

subid تو جدول category هر بار که یک category اضافه بشه اون هم بر اساس داده ی قبلی رکورد یک عدد بالاتر میره : مثلاً : رکورد قبلی subid اون 4 باشه وقتی یک رکورد دیگه اضافه بشه subid رکورد جدید 5 میشه .

حالا من تو صفحه اصلی اطلاعات جدول category رو به این صورت نمایش میدم


echo '<div align="right">
<table cellpadding="0" cellspacing="0" width="350" border=0 dir=rtl >
<tr>';
$query = mysql_query("SELECT * FROM category ");
$show = mysql_num_rows($query) ;
// $show = 14 ;
for ( $i = 0 ; $i < ceil($show/2) ; $i++ )
{
for ( $i = 0 ; $i < $show ; $i++ )
{
if ( $i%3 == 0 && $i != 0 )
{
echo "</tr><tr>";
}
$row=mysql_fetch_array($query);

echo "<td>".'<table cellpadding="0" cellspacing="0" width="155" border=1 dir=rtl >
<tr>

<td valign="top" width="140" style="text-align:center" >
<img src=Leran/Project2/Shop/'.$row['image'].' width=110 height=110 ></img> </td>
</tr>
<tr>
<td valign="top" height=40>
<p style="text-align:center"><font face=tahoma size=1 color=green><b>'.$row['name'].' </b></font></td>
</tr>
<tr>
<td valign="top" height=100 width=220>
<p dir=rtl align=justify><font face=tahoma size=1><br></font>'inja bayad sub_category ha bar asase catid va subid namayesh dade shavand'
<br></td>
</tr>

<br>
</table>
'."</td>" ;


}
}

حالا مثلاً 2 category ادد کردیم به نام های Computer و Mobile .... و subid هر کدام به ترتیب 5 و 6 میشود .

داخل جدول category هم 3 رکورد ادد میکنیم با موضوع ( HP , Sony , SonyEricsson )

که catid این HP و Sony را 5 ....... و sonyericsson هم 6 میدهیم.

حالا باید تو صفحه اصلی کاری کنیم که وقتی مثلاً category کامپیوتر نمایش داده شده بود زیر اون هم از جدول sub_category ، اونایی که catid شون با subid کامپیوتر یکی بود در زیر نمایش بده و sonyerocsson هم بر اساس همین catid و subid زیر موبایل نمایش داده بشه

http://i44.tinypic.com/2w36ntu.jpg
ممنون میشن دوستان راهنمایی کنن

terrorhell
شنبه 21 دی 1387, 00:05 صبح
سلام ، دوستان من اون چیزی که در توضیح بالا میخواستم رو نوشتم اما در نحوه چیدمان مشکل به وجود آمده ! ( خودتون ببنید)

http://i40.tinypic.com/w7c19f.jpg
همونطور که میبینید جداوا بالا پایین شدن
ممنون میشم دوستان راهنمایی کنن

وقتی به زیر منو های هر کدام چیزی اضافه میکنم جدول مربوط به اون زیر منو و منو میره بالا تر

این هم کد جدید :


echo '<div align="right">
<table cellpadding="0" cellspacing="0" width="330" border=1 dir=rtl >
<tr>';
$query = mysql_query("SELECT * FROM category ");
$show = mysql_num_rows($query) ;
// $show = 14 ;
for ( $i = 0 ; $i < ceil($show/2) ; $i++ )
{
for ( $i = 0 ; $i < $show ; $i++ )
{
if ( $i%3 == 0 && $i != 0 )
{
echo "</tr><tr>";
}
$row=mysql_fetch_array($query);
$a1 = $row['sub_id'];


echo "<td >".'<table cellpadding="" cellspacing="0" width="150" border=1 dir=rtl height=200 >
<tr >

<td valign="top" width="140" style="text-align:center" >
<img src=Leran/Project2/Shop/'.$row['image'].' width=110 height=110 ></img> </td>
</tr>
<tr>
<td valign="top" >
<p style="text-align:center"><font face=tahoma size=1 color=green><b>'.$row['name'].' </b></font></td>
</tr></table>
<table border=1 style="vertical-align:top">
<tr>';
$query1 = mysql_query("SELECT * FROM sub_category where catid='$a1'");
while($xxx = mysql_fetch_array($query1))
{
echo '
<td valign="top" width=220>
<p dir=rtl align=justify><font face=tahoma size=1></font>'.$xxx['name'].'
</td><tr>';
}
echo '
</tr>

<br>
</table>
'."</td>" ;


}
}


?>
</tr>
</table><br />
<br />
<br />

terrorhell
شنبه 21 دی 1387, 12:35 عصر
بابا یاری شتابانید

farshad_persia
شنبه 21 دی 1387, 13:05 عصر
من فکر میکنم شما دقیقا همچین چیزی رو لازم دارید
www.iransol.com/test/download.php (http://www.iransol.com/test/download.php)
یه نگاه بندازین اگه همین هست من راهنماییتون کنم

terrorhell
شنبه 21 دی 1387, 13:39 عصر
به این دقیقاً همین کارو که من میخوام بکنم انجام میده ولی با فرق اینکه این یه مقدار ظاهرش گرافیکی تره و ماله بنده ساده است .

من تو کدای خودم میخوام که جداولا رو وقتی به زیر منو ها چیزی اضافه میکنم بالا نره دیگه و در ضمن اگر دقت کرده باشید اون 3 تا جدول زیر منو ردیف اول هر کدام که کمتره در وسط جدول کناری که بیشتر هست تعدادش قرار گرفته . باید طوری باشه که اگر ردیف اول جدول اول 10 ، دوم 5 ، سوم 2 تا بود همه مقادیر جدول از بالا نمایش داده بشه (در یک سطح بالایی )

farshad_persia
شنبه 21 دی 1387, 14:04 عصر
راستش دوست عزیز من فکر میکنم شما طرحتون رو قدری پیچیده توضیح میدین
نمونه ای که خدمت شما ارایه کردم رو خودم نوشتم
فکر میکنم بهتر باشه اگر شما دقیقا همین ساختار مد نظرتون هست من خودم کدم رو توضیح بدم ...

terrorhell
شنبه 21 دی 1387, 14:52 عصر
راستش دوست عزیز من فکر میکنم شما طرحتون رو قدری پیچیده توضیح میدین
نمونه ای که خدمت شما ارایه کردم رو خودم نوشتم
فکر میکنم بهتر باشه اگر شما دقیقا همین ساختار مد نظرتون هست من خودم کدم رو توضیح بدم ...

سلام ، ممنون دوست عزیز اگر توضیح بدید!

farshad_persia
شنبه 21 دی 1387, 16:23 عصر
من مثل شما 2 تا جدول تو دیتا بیس دارم

جدول Category
id , title , ordering , publish , cat

Title : عنوان category
Ordering : طبقه بندی یا همون order کردن رو به عهده داره
Publish : فعال بودن یا غیر فعال بودن category
cat :
این همون چیزی هست که شما با اون ظاهرا مشکل دارین
من از نظر گرافیکی تو صفحه خودم جدولی کشیدم که برای هر خانه از جدول یک عدد در نظر گرفتم
مثلا category که فیلد cat اون برابر با 1 هست تو خانه شماره یک قرار میگیره
من تو این نمونه 3 تا خونه دارم که 1. 2 و 3 نام دارند و توی اون ها مثلا اینطوری نوشتم.




$res = mysql_query("select * from category where publish='1' && cat='1' ORDER BY `ordering` ");
اون ordering در واقع طبقه بندی میکنه که کدوم category بالاتر یا پایین تر از اون یکی قرار بگیره
بر اسا عددی که میگیره

حالا یه جدول subcts هم دارم که این فیلد هارو داره

id , title , catid , ordering , publish
در این جدول هم به همون شکل هستش cat id همان id آن cateory هست که این subcat قرار هست زیر مجموعه اون قرار بگیره .....
به این صورت


$res = mysql_query("select * from subcats where catid='$catid' and publish='1' ORDER BY `order`");

terrorhell
شنبه 21 دی 1387, 17:14 عصر
ممنون دوست عزیز - اما من مشکل طبقه بندی و قرار دادن هر Subcat زیر Category خودش رو ندارم اگه دیده باشید با نوشتن یک کوئری مشکلم از اون نظر ( که تو پست 1 گفته بودم ) حل شد .

من تو صفحه اصلی سایت به علت اینکه فضای محدود برای نمایش Category ها دارم مجبور شدم که در هر ردیف فقط 3 رکورد از دیتابیس رونشون بده ( یعنی در هر ردیف فقط 3 رکورد و به همین ترتیب میرن زیر هم دیگه و تو کدم هم مشخصه که هر رورد را در یک <table> میزیم ( حلقه )

حالا تنها مشکل من اینه که وقتی Sub_category به زیر این Category ها اضافه میکنم اگر تعداد Sub_category هر category یکسان نباشه ( یعنی واسه هر category ده تا زیر منو باید اضافه کنم ) و اگر یکسان نباشه جدولی که زیر منو ی آن از همه بیشتره از بقیه جداول بالاتر میره .

نمیدونم چی کار باید کنم که جدولهای category را ثابت نگه دارم و اگر زیر منو به آنها اضافه شد بالا نرن

http://i40.tinypic.com/w7c19f.jpg