我有以下代码:
$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。
答案 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遍历每个键并将每个键转换为整数。