使用php foreach循环显示数据库中checkbox字段的值

时间:2013-06-25 10:20:17

标签: php sql-server types checkbox

我正在挠头。

我有一个带有复选框的表单,该表单写入mssql数据库列treated。这很完美,您可以在下面看到它的图像:

enter image description here

最初我将此作为数据类型bit,但现在已将其更改为char以尝试修复我的问题。

所以我的问题是这样的,当我查询foreach循环中的行并回显treated列的内容时,它对每行回显'on'而不是0,on,0,on按照图像。

enter image description here

如果我回显bundles列,则确实正确回显4,5,7,10

有关该问题的任何想法都记得该字段是由复选框填充的吗?它是一个复选框问题,数据类型还是?

任何帮助一如既往的赞赏,似乎是一个简单的问题,但我不能正确。

干杯,

更新

使用codeigniter检索数据:

所以我的模特是:

function get_load_lines($ordernumber)
{

    $q = $this->db->query("
SELECT [CustomerOrderID]
      [treated]
  FROM [hammerhead].[dbo].[Customer_Order_Lines] 
  join [hammerhead].[dbo].[ProductList] 
  on [hammerhead].[dbo].[Customer_Order_Lines].product=[hammerhead].[dbo].[ProductList].[ProductCode]
  where [CustomerOrderID]='$ordernumber' and linestatus='current' and product>'0'
  ");
    if($q->num_rows() > 0) 
    {
        return $q->result_array();
    }
}

我的COntroller是:

    function edit_order_lines() 
  {
     $postinfo = array();
      $data = array(
         'loadlines' => $this->sales_model->get_load_lines($this->input->post('ordernumber'))   
      );
        $this->load->view('sales/edit_order_lines',$data);
  }

我的观点是:

<?php
$i=1;
foreach ($loadlines as $row)
{ 
//rest of code
$i++;
echo $row['treated'];
}
?>

谢谢,

1 个答案:

答案 0 :(得分:2)

  

谢谢陈,我怎么得到一个复选框来写1和0而不是当前正在发生?

将您的treated更改为以下内容:

ALTER table yourtable MODIFY column treated tinyint(1);

现在选中时会显示1,如果未选中则会显示0

现在您可以执行以下操作:

<?php
    foreach ($loadlines as $row)
    { 
        //rest of code
        echo $row['treated'];
    }
?>

它将给出1或0