انجمن‌های فارس وب

نسخه کامل: مشکل : آپدیت چند رکورد با چک باکس
شما در حال بازدید از بایگانی ارسال های انجمن هستید این نسخه کامل نیست : برای مشاهده نسخه کامل اینجا کلیک کنید
با عرض سلام خدمت همه دوستان عزیز

مشکل :
به عکس زیر توجه نمایید :
[ جهت مشاهده لينك عضو شويد ! ]

میخواهیم هر رکوردی را که تیک زدیم مقدار آن یعنی 0 یا 1 در قسمت وضقعیت نمایش در دیتابیس ثبت شود . اگر همه چک باکس ها تیک زدیم همه مقدار ها 1 شوند و یا اگر هیچ کدام تیک نداشت مقدار آنها در دیتابیس نیز 0 گردد (به نشانه عدم نمایش آن رکورد)

کد های زیادی رو سرچ کردم و تست زدم ولی هیچ کدام با یک کلید جوب نداد . یعنی یا همش 1 میشد یا همش 0 میشد .

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

if(isset($_POST['submit'])){
$checkbox $_POST['checkbox'];
foreach(
$_POST['checkbox'] as $id)
{
//$sql = "UPDATE `tbl_product` SET `show` = '".($checkbox?'1':'0')."' WHERE `id` =".$id ; 
//mysql_query($sql);


        
$strSQL "UPDATE `tbl_product` SET ";
//        $strSQL .="`show` = '".($checkbox?'1':'0')."' ";
        
$strSQL .="`show` = '".(isset($_POST['checkbox'.$id])?'1':'0')."' ";
        
$strSQL .="WHERE `id` = '".$id."' ";
        
$objQuery mysql_query($strSQL);


}


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

نیازمند کمک شما هستم .

با سلامآره

راه حل مشکل رو پیدا کردم .شیطون اینجا قرار میدم تا دوستانی که مشکل دارن استفاده کنن :

if(isset($_POST['activate']))

    foreach(
$_POST['id'] as $id)
    { 
        
$sql1="UPDATE `tbl_product` SET `show` ='".$_POST["checkbox".$id]."' WHERE `id`='".$id."'"
        
$result1=mysql_query($sql1); 
    } 
}  



<
input name="activate" type="submit"  value="نمایش/عدم نمایش"  />

<?
php while($rows=mysql_fetch_array($result)){?>
<tr>
<input type="hidden" name="id[]" value="<?php echo $rows['id']; ?>" />
<td align="center"><input name="checkbox<?php echo $rows['id']; ?>" type="checkbox" value="1" <?php if ($rows['show'] == 1) echo "checked"?> ></td>
<td><?php echo $rows['name']; ?></td>
<td align="center"><a href="" onClick="return pop_upload('edit_txt_img_product.php?id=<?php echo $rows['id'];; ?>')"><img src="../files/images/change.png" width="16" height="16" border="0" /></a></td>
</tr>
<?php }?>


فکر کنم کد گویا و مشخص باشه .

موفق یاشید

در حال جواب دادن بودم که خوشبختانه به جواب رسیدین و چه خوب که اینجا گذاشتین؛ نکته ای رو عرض کنم در مورد دستور mysql_query که داخل حلقه قرار گرفته و این کار غیر اصولی هست.

به جای این کار می بایست رشته دستور mysql رو در حلقه ساخته و در خارج از حلقه تزریق کنیم. نمونه ی زیر مثالی است برای این موضوع و با دستور insert:

$sql = '';
    foreach ( $options as $option => $value ) {
        if ( !empty($sql) )
            $sql .= ', ';
        $sql .= "('$option', '$value')";
    }

    if ( !empty($sql) )
        mysql_query("INSERT INTO  ".TABLE." (name, value) VALUES " . $sql);


موفق باشید.

مرجع آدرس ها