0

我有点挠头。

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

在此处输入图像描述

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

所以我的问题是,当我在 foreach 循环中查询行并回显treated列的内容时,它会为每一行而不是0,on,0,on根据图像回显“on”。

在此处输入图像描述

如果我回显该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();
    }
}

我的控制器是:

    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'];
}
?>

谢谢,

4

1 回答 1

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

于 2013-06-25T10:32:52.833 回答