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

نام تاپیک: چطوری دوتا حلقه در هم درست کنم ؟

  1. #1

    چطوری دوتا حلقه در هم درست کنم ؟

    سلام
    من میخوام یه لیست اینطوری درست کنم :

    a > b,c,d,e,f
    g > l,k,q,e,w
    p > j,o,x,z

    حرف های a و g و p دسته اصلی هستن
    حرف های دیگه زیر مجموعه
    حالا من باید اول دسته هارو در حلقه بزارم و بعدش زیر دسته رو به ترتیبی که نشون دادم بکشم بیرون
    چطوری این کارو انجام بدم ؟
    این کدی که خودم نوشتم و جواب نداد :

    $sql = mysql_query("SELECT * FROM `list` GROUP BY `category`");
    while ($row=mysql_fetch_array($sql)){
    $category=$row["category"];

    $sql_sub=mysql_query("SELECT * FROM `list` WHERE `category`='$category'");
    while ($row_sub=mysql_fetch_array($sql_sub)){
    $sub=$row_sub["sub"];
    echo $sub .=''.$sub.',';
    }

    $list .='<h1>'.$category.' > '.$sub.'</h1>';
    }

  2. #2

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    ترجیحا از اجرای کوئری در حلقه دوری کنید. در بدترین حالت از Prepared Statement استفاده کنید.
    در هر صورت کار شما با روش زیر هم ممکن هست:
    $select = mysql_query("SELECT * FROM `list` WHERE 1 ORDER BY category");
    $categories = array();
    while($row = mysql_fetch_assoc($select))
    $categories[ $row['category'] ] = $row['sub'];
    $select = null;

    echo '<pre>';
    print_r($categories);
    /*
    Array
    (
    [a] => Array
    (
    [0] => b
    [1] => c
    [2] => d
    [3] => e
    [4] => f
    )

    [g] => Array
    (
    [0] => h
    [1] => i
    [1] => j
    [1] => k
    )
    ....

    )
    */

    که الان اینجا من همه رو در یک آرایه ریختم شما میتونید در همون while چاپش کنید یا هر کار دیگه‌ای....
    آخرین ویرایش به وسیله امیـرحسین : شنبه 12 آذر 1390 در 12:21 عصر

  3. #3

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    نفهمدیم چی شد
    این اطلاعات ( دسته بندی و زیر دسته ها ) کم و زیاد میشن
    باید قابلیت تعیین اتوماتیک داشته باشه

  4. #4

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    دوستان ؟
    یه کمک کوچیک کنید
    ممنون

  5. #5

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    دوستان
    شدید گیرم ...

  6. #6

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    نقل قول نوشته شده توسط mamali-mohammad مشاهده تاپیک
    نفهمدیم چی شد
    این اطلاعات ( دسته بندی و زیر دسته ها ) کم و زیاد میشن
    باید قابلیت تعیین اتوماتیک داشته باشه
    کد من رو اجرا کن ببین چه خروجی‌ای میگیری...

  7. #7

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    ارور میده
    میگه array() پیدا نمیشه

  8. #8
    کاربر دائمی آواتار narsic
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    دهکده جهانی
    سن
    35
    پست
    1,020

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

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

  9. #9

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    میشه با همون حلقه ای که خودم نوشتم کد صحیحش رو بدید ؟

  10. #10

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    دوستان کمک می کنید ؟

  11. #11

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    نقل قول نوشته شده توسط mamali-mohammad مشاهده تاپیک
    میشه با همون حلقه ای که خودم نوشتم کد صحیحش رو بدید ؟
    با سلام، من فرض رو بر این گذاشتم که شما Category شماره صفر رو برای دسته ریشه استفاده کردین. نگاهی به این کد بندازین. امیدوارم متوجه روش کار بشین و اون رو برحسب نیازتون تغییر بدین:

    $sql = mysql_query('SELECT * FROM `list` WHERE (`category`=\'0\')');
    while($row = mysql_fetch_assoc($sql)) {
    echo '<h1>'.$row['text'].'</h1>'."\n";
    $sql_sub = mysql_query("SELECT * FROM `list` WHERE (`category`='{$row['category']}')");
    while($row_sub = mysql_fetch_assoc($sql_sub)) {
    echo '<h2>'.$row_sub['text'].'</h2>'."\n";
    }
    }

    موفق باشید.

  12. #12

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    ببینید در دیتابیس محتویات اینطوری ذخیره میشه ( ضمیمه شد )
    حالا این محتویات تغییر می کنن ( اضافه یا کم میشه )
    پس باید حتما با متغیر بنویسم که مشکلی درست نشه
    کد صحیحش رو اگه محبت کنید ممنون میشم
    عکس های ضمیمه عکس های ضمیمه

  13. #13

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    آهان، الآن متوجه شدم. گویا شما روشی عکس روش معمول رو انتخاب کردین چون در روش رایج، هر گزینه خودش شماره والد رو مشخص میکنه اما در روش شما، والد، گزینه های فرعی خودش رو تعیین میکنه. در هر حال، این کد رو امتحان کنید:

    $sql = mysql_query('SELECT DISTINCT `category` FROM `list` ORDER BY `category`');
    while($row = mysql_fetch_assoc($sql)) {
    echo '<h1>'.$row['category'].'</h1>'."\n";
    $sql_sub = mysql_query("SELECT * FROM `list` WHERE (`category`='{$row['category']}') ORDER BY `sub`");
    while($row_sub = mysql_fetch_assoc($sql_sub)) {
    echo '<h2>'.$row_sub['sub'].'</h2>'."\n";
    }
    }

    موفق باشید.

  14. #14

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    ممنون
    اما مشکل اینجاست که برای نمایش این دوتا باید وابسته به هم باشن
    یعنی هر دسته با زیر دسته هاشو یه جا چاپ کنه و زیر هم نباشه
    مثلا اینطوری چاپ کنه :

    Graphic > photoshop,flash,3dmax
    Movie > serial,film

  15. #15

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    اِه! واقعاً؟ بفرمایید:

    $sql = mysql_query('SELECT DISTINCT `category` FROM `list` ORDER BY `category`');
    while($row = mysql_fetch_assoc($sql)) {
    echo $row['category'].' > ';
    $sql_sub = mysql_query("SELECT * FROM `list` WHERE (`category`='{$row['category']}') ORDER BY `sub`");
    $sub = '';
    while($row_sub = mysql_fetch_assoc($sql_sub)) {
    $sub .= $row_sub['sub'].',';
    }
    $sub = substr($sub, 0, -1);
    echo $sub.'<br/>'."\n";
    }

    اون substr رو برای حذف , انتهای رشته گذاشتم. موفق باشید.

  16. #16

    نقل قول: چطوری دوتا حلقه در هم درست کنم ؟

    ممنون
    ردیف شد
    آخرین ویرایش به وسیله mamali-mohammad : یک شنبه 20 آذر 1390 در 14:00 عصر

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

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