【问题标题】:use of for loop counter in if condition php在if条件php中使用for循环计数器
【发布时间】:2016-01-23 16:40:00
【问题描述】:

如果我的数据表列搜索以及完整搜索的代码如下,

$columns = array(0 => 'ship_id' , 
                     1 => 'sr', 
                     2 => 'ce', 
                     3 => 'sto',
                     4 => 'supply' , 
                     5 => 'part',
                     6 => 'description',
                     7 =>  'quantity',
                     8 =>  'date',
                     9 =>  'shipn',
                     10 => 'ship',
                     11 => 'transport', 
                     12 => 'docket',
                     13 => 'delivery');

if(isset($searchValue) && $searchValue != '')
        {
            $searchingAll = array();
            for($i=0; $i<count($columns); $i++) //Loop search in all defined columns
            {
                $searchingAll = $this->db->or_like($columns[$i], $searchValue);
                $searchingColumns = NULL;
            }
        }
        else if($this->input->post('columns[1][search][value]', TRUE) != '')
        {
            for($i=0; $i<count($columns); $i++) //Loop search in all defined columns
            {
                $searchingAll = NULL;
                $searchingColumns = $this->db->or_like($columns[1], $this->input->post('columns[1][search][value]', TRUE));
            }   
        }
        else
        {
            $searchingAll = NULL;
            $searchingColumns = NULL;
        }

第一个 IF 条件将搜索完整的数据表,然后 else-if 将搜索单个列,

我的数据表中有 12 列,所以我需要循环 12 次 else-if 条件,

在上面的代码中,目前我只显示了第 1 列,但我需要检查在任何列搜索中输入了某些内容的所有 12 列,然后它将进入 else-if 条件的 for 循环,

如何在 else-if 条件下检查所有 12 列?

谢谢,

【问题讨论】:

标签: php mysql datatable datatables


【解决方案1】:

您没有使用您在else if 中定义的$i
改用这个:

    $columns = array(0 => 'ship_id' , 
                 1 => 'sr', 
                 2 => 'ce', 
                 3 => 'sto',
                 4 => 'supply' , 
                 5 => 'part',
                 6 => 'description',
                 7 =>  'quantity',
                 8 =>  'date',
                 9 =>  'shipn',
                 10 => 'ship',
                 11 => 'transport', 
                 12 => 'docket',
                 13 => 'delivery');

    if(isset($searchValue) && $searchValue != '')
    {
        $searchingAll = array();
        for($i=0; $i<count($columns); $i++) //Loop search in all defined columns
        {
            $searchingAll = $this->db->or_like($columns[$i], $searchValue);
            $searchingColumns = NULL;
        }
    }
    else if($this->input->post('columns[1][search][value]', TRUE) != '')
    {
        for($i=0; $i<count($columns); $i++) //Loop search in all defined columns
        {
            $searchingAll = NULL;
            $searchingColumns = $this->db->or_like($columns[$i], $this->input->post('columns['.$i.'][search][value]', TRUE));
        }   
    }
    else
    {
        $searchingAll = NULL;
        $searchingColumns = NULL;
    }

【讨论】:

  • 我知道,但我想要的是在 else if 条件下检查所有 12 列的条件,如果有人不为空,那么它将执行循环,所以我可以检查所有 12 列elseif() 条件?目前我只使用 column1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-18
  • 1970-01-01
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多