Codeigniter DB查询php

时间:2014-01-17 03:23:24

标签: php database codeigniter

我有以下代码:

$spaces=0;
$str="bike car ";
for($i = 0; $i < strlen($str); $i++)
{
  if($str[$i]==" ")
  {
    $spaces+=1;
  }
}
$names=explode(" ",$str);

上面的代码用于分割字符串中的单词。我如何进行数据库查询,其中我得到名称的id(字符串中我分开的单词)。

假设我有一张价格表

该表允许说2个cols,项目名称和id

我如何解析数据库查询,其中我需要获取列出的项目名称的ID。

2 个答案:

答案 0 :(得分:0)

我想你想获得爆炸$name的ID只是你可以使用$this->db->where_in()

示例:

$names = array('Frank', 'Todd', 'James');
$this->db->where_in('username', $names);
// Produces: WHERE username IN ('Frank', 'Todd', 'James')

请参阅此处的文档:Where In Query

所以代码的下一行可能就像这样:

$names    = explode(" ",$str);
$this->db->select('id')
         ->where_in('your_table_name',$names);
$query    = $this->db->get();
$result   = $query->result_array(); 

然后您可以使用$result

foreach($result as $r){
   echo 'The id is :'.$r['id'];
}

答案 1 :(得分:0)

您可以简单地使用array_keys和array_values来遍历数组键和值

//sample array
Array
(
    [1334] => Face Towel
    [4552] => White Socks
    [3442] => Lotion
    [6643] => Pants
    [4432] => foobar
    [5532] => bar
)

$items = implode(',',array_values($array)); //will get the array values
$itemid = implode(',',array_map('intval',array_keys($array))); //will get the array keys


$this->db->where_in('items', $items);
// where items IN ('Face Towel','White Socks','Lotion','pants','foobar','bar')
$this->db->where_in('itemid', $itemid);
// where itemid IN (1334,4552,3442,6643,4432,5532)

请注意,我使用array_map遍历每个键并将每个键转换为整数。