نمایش نتایج 1 تا 22 از 22

نام تاپیک: روش ساخت منو های کشوی از اصلاعات دیتابیس

  1. #1

    روش ساخت منو های کشوی از اصلاعات دیتابیس

    سلام دوستان عزیز
    میشه لطفی و این مشکل من رو حل بفرمایید.

    من دو دسته در دیتا بیس دارم گروه و مطالب داخل هر گروه

    حال میخوام با روش منوهای کشوی گروهها و مطالب آنهارا به من نمایش دهد.
    من این کار رو با روشی که در ضمیمه این پست ارسال کردم انجام دادم ولی متاسفانه فقط یک مطلب از مطالبی که در یکی از گروه ها وجود داره میاره و دیگر هیچ

    مثال

    [کامپیوتر]
    |
    --- [نرم افزار]
    | |
    | {شاپ}
    | {کت}
    |
    ---[سخت افزار]

    میخوام که به صورت بالا نمایش داده بشه ولی در دسته نرم افزار که دو مقاله است فقط یکی را نشون میده برای چه ؟

    واقعا ممنون میشم اگه کمکی کنید


    یا حق
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر دائمی آواتار hamid67fathi
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    WwW
    پست
    435

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    سلام
    شما بايد از 2 تا حلقه تو در تو استفاده کنيد .
    حلقه اول برای خواندن عناوين و
    حلقه دوم وری خواندن مطالب آنها.

  3. #3

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

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

  4. #4
    کاربر دائمی آواتار hamid67fathi
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    WwW
    پست
    435

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    اين كد ها رو جايگزين كنيد احتمالا نتيجه مورد نظر حاصل ميشه
    $result = mysql_query("SELECT * FROM cat order BY id ASC");
    while($r=mysql_fetch_array($result))
    {
    $cn=$r["name"];
    $ci=$r["id"];
    echo "<li>$cn</li>";

    $result2 = mysql_query("SELECT * FROM pro WHERE cat LIKE $ci order BY id ASC");
    while($r2=mysql_fetch_array($result2))
    {
    $pn=$r2["name"];
    $pi=$r2["id"];
    echo "<ul>$pn</ul>";
    }
    }

  5. #5

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    جواب نمیده شرمنده من یادم رفت این رو بگم که به صورت echo نمیتونم نتیجه بگیرم چون همه اطلاعات در متغییر نمایش داده میشه و اگه از echo استفاده کنم همه چی بهم میریزه

    <?php

    $result = mysql_query("SELECT * FROM cat order BY id ASC");
    while($r=mysql_fetch_array($result))
    {
    $cn=$r["name"];
    $ci=$r["id"];
    $cl = "$cl <li><a href='#'>$cn</a>";

    $result2 = mysql_query("SELECT * FROM pro WHERE cat LIKE $ci order BY id ASC");
    while($r2=mysql_fetch_array($result2))
    {
    $pn=$r2["name"];
    $pi=$r2["id"];
    $cl = "$cl <li><a href='#'>$cn</a>
    <ul style='position: absolute; right: 199px; top: 0px' align='right'><li><a title='x1' href='#1'>$pn</a></li></ul></li>";
    }
    }
    $menu = "<ul>$cl</ul>";

    ?>

  6. #6

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    دوستان پیشنهادی ندارید ؟

  7. #7
    کاربر دائمی آواتار hamid67fathi
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    WwW
    پست
    435

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    اصولاً نبايد مشکلی داشته باشه !
    در جمع کردن رشته اصلی به صورت زير عمل کن شايد جواب داد :
    $c1 = $c1. "رشته جديد ";

  8. #8

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    آقا من روش قبلی شما رو به این صورت اجرا کردم ولی مشکلی که هست اینه مثلا اگه چند مطلب در یک شاخه دارم فقط یکی از آنها را نشان میده . واسه چی
    echo "<div class='menu-pos' dir='rtl' style='width: 100%; text-align: right'>
    <ul id='navmenu' style='padding: 0 0 0 0'>
    <li><a href='#'>test</a>
    <ul>";
    $result = mysql_query("SELECT * FROM cat order BY id ASC");
    while($r=mysql_fetch_array($result))
    {
    $cn=$r["name"];
    $ci=$r["id"];
    echo "<li><a href='#'>$cn</a>";

    $result2 = mysql_query("SELECT * FROM pro WHERE cat LIKE $ci order BY id ASC");
    while($r2=mysql_fetch_array($result2))
    {
    $pn=$r2["name"];
    $pi=$r2["id"];
    echo "<ul style='position: absolute; right: 199px; top: 0px' align='right'><li><a title='x1' href='#1'>$pn</a></li></ul>";
    }
    }
    echo "</li></ul></li></div>";

  9. #9
    کاربر دائمی آواتار hamid67fathi
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    WwW
    پست
    435

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    cat بايد از نوع اينتيجر بايد باشه که ميدونيد و بهتره بجای like از = استفاده کنيد.
    ولی بازم نبايد مشکلی باشه !!
    بهتره همه چيز رو از اول مرور کنيد اگه حل نشد بهتره جدول رو برام بفرستيد .

  10. #10
    کاربر دائمی آواتار zoghal
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    همدان
    سن
    41
    پست
    401

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    اگر اصول طراحی تیبل تون رو به روش درختی ایجاد کرده باشید.
    منظور از درختی این هست که شما یک والد در بالا هست حالا هرچی فرزند بهش اضافه میشه شناسه پدر خودش رو نگه میداره
    مثال:

    1: منوی اصلی
    --2: نرم افزار
    ----4: گرافیک
    ----5: آنتی ویروس
    --3: سورس کد
    ----6:سی
    ----7: پی اچ پی

    حالا ساختار تیبل اینطوری میشه


    catid : catname : maincatid

    insert into table value('1','منوی اصلی','0');
    insert into table value('2','نرم افزار','1');
    insert into table value('3','سورس کد','1');
    insert into table value('4','گرافیک','2');
    insert into table value('5','آنتی ویروس','2');
    insert into table value('6','سی','3');
    insert into table value('7','پی اچ پی','3');



    اگر ساختارتون اینگونه باشه(باید باشه فکر نکنم از این راحت تر راهی باشه)

    نیاز به یک تابع برگشتی دارید
    [
    founction tree($root =0,$level = 0)
    {
    $res = mysql_query("select * from table where maincatid='$root' ");
    while ($row = mysql_fetch_object($res )) {
    echo $row->$level." -> ".$row->catname."<br>";
    tree($row->catid,$level+1);
    }
    }
    [/PHP]

    معذرت یک مقدار حول حولکی شد

    این روش برای مقادیر بالا اصلا خوب نیست چون توابع برگشتی حافظه زیادی رو مصرف میکنند

    اما روش دیگر بسیار حرفه و بسیار سرعت بالایی داره که میتونی با یک کوئری کل درخت رو داشته باشی

    اسم این روش هست hierarchical tree

    این هم یک مثال معتبر
    http://dev.mysql.com/tech-resources/...ical-data.html
    درضمن در سایت phpclasses.org کلاس های خوبی رو میتونی پیدا کنید

  11. #11

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    دوستان از شما ممنونم
    ولی مشکل من در دیتابیس یا فراخوانی اطلاعات نیست مشکل من روش صحیح قرار دادن <li> , <ul> , </ul> , </li> در چرخه فراخوان است از آنجایی که میدونید اگه من این کد را به این صورت
    <li><a href='#'>$cn</a>
    استفاده کنم انتهای li من باز مانده و قابل استفاده میباشد و تا اینجا من هیچ مشکلی ندارم مشکل من در بخش زیرگروه آن است که مجبورم به این صورت عمل کنم
    <ul style='position: absolute; right: 199px; top: 0px' align='right'><li><a title='x1' href='#1'>$pn</a></li></ul>
    حال به دلیل استفاده کردن از <li></ul/> در انتهای دستور ، دستور من را میبنده و اجازه نمیده تا اطلاعات بعدی من که به صورت چرخه ای کوچک باید نمایش داده بشه ، بسته میشه و این مشکل پیش میاد که من فقط یکی از مطالب خود را در گروه مربوطه مشاهده میکنم

    انشالله که منظور خود را رسانده باشم

    بازم از لطفه شما تشکر میکنم



  12. #12
    کاربر دائمی آواتار zoghal
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    همدان
    سن
    41
    پست
    401

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    من خیلی وقت پیش این رو واسه کاری نوشتم بهینه نیست اما شاید الگو خوبی باشه

    این تابع اطلاعات رو از دیتابیس واکشی میکنه و در آرایه میریزه

    function ShowSubCatForMenuCat($id = 0)
    {
    $q = "SELECT
    cat_id, cat_subcat, cat_name,cat_sort,cat_filename
    FROM
    cat
    ORDER BY
    cat_subcat, cat_sort DESC";

    $CatData = array('NameCat' => array(), 'ParentID' => array());
    $result = mysql_query($q);

    while ($row = mysql_fetch_assoc($result)) {
    $CatData['NameCat'][$row['cat_id']] = $row;
    $CatData['ParentID'][$row['cat_subcat']][] = $row['cat_id'];
    }
    if ($id == 0)
    ScanCategoryLevelForMenuCat($CatData, $id);
    else
    ScanCategoryLevelForMenuCat($CatData, $id, 1);

    }



    و این تابه به همون صورتی که منظورتون هست نمایش میده


    function ScanCategoryLevelForMenuCat($Cat, $parentId = 0, $dep = 0)
    {
    if (isset($Cat['ParentID'][$parentId])) {
    foreach ($Cat['ParentID'][$parentId] as $itemId) {
    $link = "/category/" . $Cat['NameCat'][$itemId]['cat_filename'] . ".html";
    if ($dep == 0)
    $link = "#";
    ?>
    <a href="<? echo $link ?>" <? if ($dep == 0)
    echo 'onclick="ShowSubCat(this)" ' ?> class="MenuCatL<? echo
    $dep + 1 ?>">
    <? echo $Cat['NameCat'][$itemId]['cat_name'];
    if ($dep != 0)
    echo '<span id="CountOfTotalProInCat"> [ ' . TotalProInCat($itemId) . ' ] </span>';
    ?> </a><br />
    <?
    // find childitems recursively
    if ($dep == 0)
    echo "<div id=\"SubCatHide\">";
    ScanCategoryLevelForMenuCat($Cat, $itemId, $dep + 1);

    if ($dep == 0)
    echo "</div>";
    }
    }
    return $html;
    }


    البته من با div پیاده سازی کردم

  13. #13

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    سلام آقا شرمنده من که گرخیجه گرفتم
    آقا فایلهای ما در ضمیمه قرار داره میشه چک کنی که مشکل ما از چیه

    در گروه Test 3 دو بخش به نام های Test 3-1 و Test 3-2 قرار داره که فقط Test 3-1 رو نمایش میده و خبری از Test 3-2 نیست

    میشه چک کنید و اشکال من رو رفع کنید .
    ممنون
    فایل های ضمیمه فایل های ضمیمه

  14. #14
    کاربر دائمی آواتار zoghal
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    همدان
    سن
    41
    پست
    401

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    این چیزی که شما دادین اصلا مولتی لول یا مولتی کت نیست


    1: منوی اصلی
    --2: نرم افزار
    ----4: گرافیک
    ----5: آنتی ویروس
    --3: سورس کد
    ----6:سی
    ----7: پی اچ پی

    چیزی که شما اتچ گردید به این صورت هست


    1: منوی اصلی
    2: نرم افزار
    3: گرافیک
    4: آنتی ویروس
    5: سورس کد
    6:سی
    7: پی اچ پی


  15. #15

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    حالا این چیزی که من دادم رفع اشکال نمیشه ؟

  16. #16
    کاربر دائمی آواتار zoghal
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    همدان
    سن
    41
    پست
    401

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    خوب این که خیلی ساده هست

    echo "<ul>"
    start loop
    echo "<li>.....</li>
    end loop
    echo "</ul>"


  17. #17
    کاربر دائمی آواتار cybercoder
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    root/
    پست
    2,018

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    برای نمایش به صورت کشویی می تونید از udm4 هم استفاده کنید که جالبه

  18. #18

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    دوست عزیز این اونی نیست که من میخوام
    من این روش رو میخوام



    1. echo "<ul>"
    2. start loop
    3. echo "<li>....."
    4. echo "<ul><li>.....</li></ul></li>"
    5. end loop
    6. echo "</ul>"



    اگه شما لطف کنید و ضمیمه من رو نصب کنید متوجه منظور من میشید.
    تا اونجایی که میدونم در انتهای خط 4 نباید <li></ul></li> اونجا باشند تا تکرار اسکریپت انجام بشه ولی هرجا غییر از اینجا باشه اسکریپت بهم میخوره


  19. #19

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    دوستان میتونید در این مورد به من کمک کنید ؟

  20. #20
    کاربر دائمی آواتار zoghal
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    همدان
    سن
    41
    پست
    401

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    من یک سوال دارم از شما
    سیستم شما به این صورت هست
    -منو 1
    - - منو2
    - - - منو3
    - منو4
    - -منو 5
    - - - منو 6
    یا به این صورت هست

    منو1
    -منو 2
    - - - منو 3
    - - - - منو 4

  21. #21

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    نقل قول نوشته شده توسط zoghal مشاهده تاپیک
    من یک سوال دارم از شما
    سیستم شما به این صورت هست
    -منو 1
    - - منو2
    - - - منو3
    - منو4
    - -منو 5
    - - - منو 6
    یا به این صورت هست

    منو1
    -منو 2
    - - - منو 3
    - - - - منو 4
    متاسفانه متوجه نشدم

    منوی من اینجوریه

    ·منو1

    • 1.1
    • 1.2
    • 1.3
      • 1.3.1

    • 1.4
      • 1.4.1

    • 1.5
      • 1.5.1
      • 1.5.2


    ·منو2

    • 2.1
    • 2.2

    در ضمیمه قبلی من کل فابل ها رو برا تست دادم اگه لطف کنید و بتستید ممنون میشم.

  22. #22
    کاربر دائمی آواتار zoghal
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    همدان
    سن
    41
    پست
    401

    نقل قول: روش ساخت منو های کشوی از اصلاعات دیتابیس

    دوست من نمی تونم بیشتر از این توضیح بدم شما اونچه که ضمیمه کردید رابطه ای با این نداره
    واستون نوع طراحی دیتابیس اینگونه منوهای آبشاری رو توزیح دادم گه برگشتید گفتید من مشکلی با .... ندارم

    این مثال خودتون رو ببینید

    ·منو1

    • 1.1
    • 1.2
    • 1.3
      • 1.3.1

      میتونم بپرسم تو اون فایل که ضمیمه کردید و در تیبل cat شما ساختار و رابطه منو 1.3 و 1.3.1 رو برقرار کردید؟ مگر غیر از این هست که 1.3.1 زیر مجموعه 1.3 قرار میگیرید. لطفا دقت کنید

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •