2015-05-09 133 views
-4

转换这个数组PHP/MySQL的转换阵列WHERE子句

array("user_id"=>"8", "product_id"=>"35", "quantity"=>"1") 

查询

select * from tbl_name where user_id='8' and product_id='35' and quantity='1' 

以及如何使用笨活动记录功能,PHP中提供的任何方式或库?

+3

你尝试过什么吗?向我们显示您的代码... –

+1

如上所述,您应该显示您的代码,以便社区能够指引您回到正确的方向;如果你还没有尝试任何代码,下面的CodeIgniter文档部分可能会有一些用处:https://ellislab.com/codeigniter/user-guide/database/active_record.html#select –

+0

即时通讯使用implode功能它是显示消息'选择*从add_to_cart在哪里8,35,1'但我需要关联阵列 – user3743689

回答

1

使用implodearray_map

<?php 
$where_arr = array("user_id"=>"8", "product_id"=>"35", "quantity"=>"1"); 
$where = implode(' AND ', array_map(function ($value, $key) { return "`". $key . "`='" . $value . "'"; }, $where_arr, array_keys($where_arr))); 

OR array_walk

$where_arr = array("user_id"=>"8", "product_id"=>"35", "quantity"=>"1"); 
array_walk($where_arr, function (&$value, $key) { $value = "`". $key . "`='" . $value . "'"; }); 
$where = implode(' AND ', $where_arr); 

创建查询

$query = 'SELECT * FROM `tbl_name` WHERE '.$where; 

$query输出:

SELECT * FROM `tbl_name` WHERE `user_id`='8' AND `product_id`='35' AND `quantity`='1' 

在你的控制,获得数据

$where_arr = array("user_id"=>"8", "product_id"=>"35", "quantity"=>"1"); 
$results['products'] = $this->db->get_where('tbl_name', $where_arr)->result(); 

$this->load->view('your_view_name', $results); 

现在你可以在你的视图中使用$products变量,它找到的所有产品。

0

试试这个

$array = array("user_id"=>"8","product_id"=>"35","quantity"=>"1"); 
$clauses = array(); 
foreach ($array as $field => $value) { 
    $clauses[] = "$field='$value'"; 
} 
$where_clause = join(" and ",$clauses); 
echo "select * from tbl_name where " . $where_clause;