مشکل سخت و راحت در کار با php و mysql

freeskin

New Member
من یه سایتی دارم که میخوام ببرمش روی بانک mysql و مشکلی برخوردم باهاش (اطلاعات من در مورد برنامه نویسی بانک اطلاعاتی حرفه ای نیست ولی دارم رووش کار میکنم دیگه) به هر حال سوالم اینه:

این عکسو ببینید بهتر میشه توضیح داد

4-16-2014 2-55-54 AM.jpg

خب همونطور که میبنید سه تا دسته هست که هر کدومشون زیر دسته داره مثلا برای دسته مواد غذایی ، زیر دسته های شکلات لبنیات خشکبار و ... در نظر گرفته شده و برای بخش پرده سرا هم سه یا چهار عنوان زیرمنو در نظر گرفته شده و همینطور برای بخش لوازم خانگی هم بخشهای زیرمنوی مخصوصش وجود داره..

من از طریق bindings در خود دریم ویور دارم به صورت ویزارد کار میکنم و کدنویسی دستی خیلی مسلط نیستم.. این توضیحو بدم که برای نمایش دسته بندیها ، من دو تا جدول درست کردم یکی groups و دیگری subgroups.. محتویات جدول یک عنوان اصلی منو هست و توضیح منو و یه شناسه منحصر..
من موفق شدم که با تعریف repeat region در دریم ویور منوها رو تکرار کنم به تعداد موجود در جدول بانک اطلاعات .. ولی متاسفانه نمیتونم زیر منوهای این منوهای اصلی رو درون خودشون تکرار کنم طوری که زیر منوی هر کدوم مربوط به منوی اصلی خودش باشه.. الان نمایش داده میشه ولی اولین رکورد از جدول دوم که همون عبارت شکلات هست برای همه منوهای اصلی ظاهر میشه..

ممنون میشم در این مورد یه مثالی معرفی کنید یا اینو یه توضیح بدید
 
آخرین ویرایش:

freeskin

New Member
جواب میخوام

راستی اینم اون تکه از کدی هست که در موردش سوال دارم!

[PHPS]<div class="main">
<?php do { ?>
<div class="group">
<div class="group_header">
<div class="group_icon"><img src="groups/icons/gicon<?php echo $row_groups_list['maingroups_id']; ?>.png"></div>
<div class="group_title"><?php echo $row_groups_list['maingroup_name']; ?></div>
</div>
<div class="group_catelist">
<ul>

<li><a href="groups/cateview.php?gcode=1&amp;cat=1&amp;catname=شکلات"><?php echo $row_subgroups['subg_title']; ?></a>
</li>



</ul>
</div>
</div>
<?php } while ($row_groups_list = mysql_fetch_assoc($groups_list)); ?>

</div><!--/main-->[/PHPS]


میخوام تکه کد قرار گرفته در بین تگ li رو از محتویات جدول شماره ۲ که یک فیلدش برابر با یک فیلد کلیدی از جدول شماره ۱ هست رو نمایش بدم (طبیعتا یک جواب نداره و تعدادی باید لیست بشه)
 

farik

Well-Known Member
با سلام..
خوب ین یک شیوه هست...که شما به محدودیتش هم پی بردید...اما اگه بخواین بی نهایت زیر شاخه داشته باشین اینطوری به مشکل میخورین..برای حل این مشکل....شما میاین یک تب پرنت رو اضافه میکنین...بعد که اضافه کردین...برای اصلی ها اون رو -1 میگذاری...و همینطوری اول همه والد ها رو انتخاب میکنی..بعد به ازای آیدی اونها همه اونایی که پرنتشون ایدیش آیدی اونها است رو انتخاب میکنی...و اینطوری میتونی تا بی شمار زیر شاخه هم داشته باشید...
موفق باشید..
 

freeskin

New Member
شاید منظورمو بد رسوندم لطفا اینو مشاهده کنید و کدهای کاملتری رو ببینید!

سلام دوستان هنرمند php کار
.............................................

نام مربی ها: مربی ۱ ، مربی ۲، مربی ۳، مربی ۴، و ...
نام دانشجو: دانشجو۱، دانشجو۲، دانشجو۳، دانشجو۴، دانشجو۵، دانشجو۶، و ...

هر مربی در زیرمجموعه ی خودش تعدادی دانشجو داره و هر دانشجو در زیرمجموعه ی یک یا چند مربی قرار میگیره
طبق شکل زیر دو تا جدول هم برای هر کدوم جدا ایجاد کردم که رکوردهاشون مشخصه

::به صورت زیر::

PIC1.gif

کدهایی هم که تا اینجا استفاده کردم به اینصورت هستن ( البته کدها با مثالی که زدم یکی نیستن و عبارتها چیز دیگه ای هستن - ببخشید)
PHP:
mysql_select_db($database_connection, $connection);$query_groups_list = "SELECT * FROM groups";$groups_list = mysql_query($query_groups_list, $connection) or die(mysql_error());$row_groups_list = mysql_fetch_assoc($groups_list);$totalRows_groups_list = mysql_num_rows($groups_list);


mysql_select_db($database_connection, $connection);$query_subgroups = "SELECT * FROM subgroups WHERE maingroup_id = '3'";$subgroups = mysql_query($query_subgroups, $connection) or die(mysql_error());$row_subgroups = mysql_fetch_assoc($subgroups);$totalRows_subgroups = mysql_num_rows($subgroups);


اینم از بخشی که حلقه ی تو در تو استفاده کردم

HTML:
 <div class="main">                <?php do { ?>        <?phpmysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");?>        <div class="group">            <div class="group_header">              <div class="group_icon"><img src="groups/icons/gicon<?php echo $row_groups_list['maingroup_id']; ?>.png"></div>              <div class="group_title"><?php echo $row_groups_list['maingroup_name']; ?></div>            </div>            <div class="group_catelist">              <ul>                                 <?php while ($row_subgroups = mysql_fetch_assoc($subgroups)) { ;?>    
                <li><a href="groups/cateview.php?gcode=1&amp;cat=1&amp;catname=شکلات"><?php echo $row_subgroups['subg_title']; ?></a>                </li>                <?php } ; ?>                                </ul>              </div>                        </div>          <?php } while ($row_groups_list = mysql_fetch_assoc($groups_list));                     ?>                                                           </div><!--/main-->


البته تعداد گروههایی که ایجاد شدن از جدول مربی ها، به درستی در حلقه ی اول بازیابی میشه و نمایش داده میشه و همونطور که در شکل درسمت راست نشون دادم به این صورت نمایش داده میشه ولی مشکلی که هست اینه که در زیر مموعه ی مربی ۲ و مربی ۳ و الی آخر، هیچی دیده نمیشه و در عوض همه ی دانشجوها در زیرمجموعه ی مربی ۱ نمایش داده میشن..
البته اونجایی که در کوئری دوم من maingroup_id رو برابر ۳ قرار دادم، طبیعتاً هر چی از جدول دوم که مربی ش ۳ باشه نمایش داده خواهد شد و این اتفاق میافته و درست هم کار میکنه ولی نمیدونم چرا این حلقه برای مربی ۲ و مربی ۳ درست کار نمیکنه؟!

فعلا اینقدر رو مطالعه کنید و پاسخ بدین تا در ادامه در خدمت باشم
ممنونم و منتظرم
 

جدیدترین ارسال ها

بالا