2015-05-09 3 views
-4

Преобразовать этот массивPHP/MYSQL преобразовать массив в ИНЕКЕ

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

для запроса

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

, а также как использовать CodeIgniter активную функцию записи на PHP любой способ или библиотеку доступных?

+3

Вы что-то пробовали? Покажите нам свой код ... –

+1

Как уже упоминалось выше, вы должны показать свой код, чтобы сообщество могло указать вас в правильном направлении; если вы еще не пытались выполнить какой-либо код, может понадобиться следующий раздел документации CodeIgniter: https://ellislab.com/codeigniter/user-guide/database/active_record.html#select –

+0

im, использующий функцию implode funciton message 'SELECT * FROM add_to_cart WHERE 8,35,1', но мне нужен ассоциированный массив – user3743689

ответ

1

Использование implode и array_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))); 

ИЛИ 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' 

CodeIgniter

В контроллере, получить данные

$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; 
Смежные вопросы