/
  • ذخیره مقادیر checkbox برای یک رکورد در mysql با php

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی ذخیره مقادیر checkbox برای یک رکورد در mysql با php
    نویسنده پیام
    tabasom_1990 آفلاین
    عضو جدید
    **

    ارسال‌ها: 2
    تاریخ عضویت: ۱۳۹۵ ارديبهشت ۲۶
    اعتبار: 0
    تشکرها : 0
    ( 0 تشکر در 0 ارسال )
    ارسال: #1
    ذخیره مقادیر checkbox برای یک رکورد در mysql با php
    سلام دوستان
    من یه مشکل جدی دارم تو ذخیره مقادیر checkbox برای یک رکورد در mysql با php
    مشکل اینجاست که مقادیر چکباکس رو تو آرایه میگیرم و insert میکنم تو db برای یک رکورد خاص! اما فقط مورد آخری که تیک خورده رو ذخیره میکنهSad


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


    کد PHP:
    @$checkbox implode(';' ,  $_POST['checkbox']);
    $arrlength count($checkbox);

    if ((isset(
    $_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
    $i=0;
    foreach (
    $_POST['checkbox'] as $checkbox){
    $insertSQL sprintf("INSERT INTO pro_st (prost_proid, prost_stid) VALUES (%s, %s)",
                           
    GetSQLValueString($row_rsPages['pro_id'], "int"),
                           
    GetSQLValueString(isset($checkbox) ? "true" """defined","'$checkbox'","'N'"));
                
    $i $i+1;
        } 
    ۱۳۹۵ ارديبهشت ۲۷ ۰۵:۰۱ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    M.J آفلاین
    محمد
    *****

    ارسال‌ها: 963
    تاریخ عضویت: ۱۳۸۹ خرداد ۹
    اعتبار: 21
    تشکرها : 880
    ( 571 تشکر در 369 ارسال )
    ارسال: #2
    RE: ذخیره مقادیر checkbox برای یک رکورد در mysql با php
    نام checkbox ها در html بصورت آرایه هستش؟؟ مثلا اینجوری باید باشه

    کد:
    <input type="checkbox" name="checkbox[]" value="1" />
    <input type="checkbox" name="checkbox[]" value="2" />
    <input type="checkbox" name="checkbox[]" value="3" />
    <input type="checkbox" name="checkbox[]" value="4" />
    __________________________________________________________________________
    اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی دیگه در مورد آزادی شعار نده !
    آلبر کامو
    (آخرین ویرایش در این ارسال: ۱۳۹۵ ارديبهشت ۲۸ ۰۲:۰۶ عصر، توسط M.J.)
    ۱۳۹۵ ارديبهشت ۲۸ ۰۱:۲۷ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    tabasom_1990 آفلاین
    عضو جدید
    **

    ارسال‌ها: 2
    تاریخ عضویت: ۱۳۹۵ ارديبهشت ۲۶
    اعتبار: 0
    تشکرها : 0
    ( 0 تشکر در 0 ارسال )
    ارسال: #3
    RE: ذخیره مقادیر checkbox برای یک رکورد در mysql با php
    من یه جدول محصول دارم
    و یه جدول استاندارد
    رابطه اینجوریه که برای هر محصول چند استاندارد باید تعریف بشه
    من یه جدول تعریف کردم با id این دو جدول که به ازای مثلا محصول با id=1 چندین استاندارد insert بشه
    لیست استانداردهارو هم اینجوری میگیرم:
    کد PHP:
    <?php
    while($rows=mysql_fetch_array($rsNav)){
    ?>
      <tr>
        <td><input name="checkbox[]" type="checkbox" value="<?php echo $rows['st_id']; ?>" /></td>
        <td><?php echo $rows['st_id']; ?></td>
        <td><?php echo $rows['st_name']; ?></td>
        <td><?php echo $rows['st_disc']; ?></td>          
      </tr>
    <?php
    }
    ?>

    تو پایگاه داده محصول 1 ذخیره میشه اما مثلا از 5 مورد استانداردی که من تیک زدم تنها آخرین مورد ذخیره میشه
    تو تصویر شماره 1 لیست محصولات رو نشون میده که با کلیک روی استاندارد میره به عکس شماره 2 و هرچندتا استاندارد که بخوایم انتخاب میشه و برای همون محصول ذخیره میشه

    شکل 1:
    [تصویر:  pdfh_1.jpg]
    شکل 2:
    [تصویر:  brht_2.jpg]
    (آخرین ویرایش در این ارسال: ۱۳۹۵ ارديبهشت ۲۸ ۰۴:۳۲ عصر، توسط tabasom_1990.)
    ۱۳۹۵ ارديبهشت ۲۸ ۰۴:۱۸ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    M.J آفلاین
    محمد
    *****

    ارسال‌ها: 963
    تاریخ عضویت: ۱۳۸۹ خرداد ۹
    اعتبار: 21
    تشکرها : 880
    ( 571 تشکر در 369 ارسال )
    ارسال: #4
    RE: ذخیره مقادیر checkbox برای یک رکورد در mysql با php
    اول باید مطمئن بشی که امکان مالتی کوئری توسط درایور مربوطه پشتیبانی میشه!
    حالا در مورد کدت که من دیدم شما داری متغییرت رو این شکلی پیاده میکنی

    کد PHP:
    $insertSQL sprintf("INSERT INTO pro_st (prost_proid, prost_stid) VALUES (%s, %s)",
                           
    GetSQLValueString($row_rsPages['pro_id'], "int"),
                           
    GetSQLValueString(isset($checkbox) ? "true" """defined","'$checkbox'","'N'")); 

    این در حالی هست که وقتی توی یک حلقه میخوای یک متغییر رو مقدار بدی به اضافه ی مقدار قبلش باید از . استفاده کنی یعنی
    کد PHP:
    $insertSQL .= sprintf("INSERT INTO pro_st (prost_proid, prost_stid) VALUES (%s, %s)",
                           
    GetSQLValueString($row_rsPages['pro_id'], "int"),
                           
    GetSQLValueString(isset($checkbox) ? "true" """defined","'$checkbox'","'N'")); 

    ولی بنظرم بهتر هست شما بجای اجرای مالتی کوئری تک تک اینزرت رو انجام بدی یعنس بعد همون انتساب متغییر اینزرت رو انجام بده
    کد PHP:
    $insertSQL sprintf("INSERT INTO pro_st (prost_proid, prost_stid) VALUES (%s, %s)",
                           
    GetSQLValueString($row_rsPages['pro_id'], "int"),
                           
    GetSQLValueString(isset($checkbox) ? "true" """defined","'$checkbox'","'N'"));
    $pdo->exec($insertSQL

    ولی اگر علاقه به اجرای یک کوئری هستی ( من هم معمولا همین کار رو میکنم اونجا باید از prepare در pdo استفاده کنی ( البته به شرط اینکه درایور pdo داری استفاده میکنی) در اینصورت کامند دیتابیست این میشه

    کد:
    $insertSQL = "INSERT INTO pro_st (prost_proid, prost_stid) VALUES";
    foreach ($_POST['checkbox'] as $checkbox){
            sprintf("(%s, %s),",
                GetSQLValueString($row_rsPages['pro_id'], "int"),
                GetSQLValueString(isset($checkbox) ? "true" : "", "defined","'$checkbox'","'N'")
            );
    }
    $insertSQL = rtrim($insertSQL,',');



    /*
    INSERT INTO pro_st (prost_proid, prost_stid) VALUES (1,1),(1,2),(1,3),(1,4),(1,5),.....
    */
    __________________________________________________________________________
    اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی دیگه در مورد آزادی شعار نده !
    آلبر کامو
    ۱۳۹۵ ارديبهشت ۲۹ ۱۱:۲۰ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : kasbookar
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS