2015-05-22 33 views
0

我有一個數組中此如何從數據庫中檢索基於關鍵數組的數據每個都有價值?

Array ( 
    [14] => 0.46902846738366 
    [16] => 0.40289063077504 
    [17] => 0.54903658244928 
) 

14,16,17是在我的表是在數據庫中的同一陣列密鑰ID。我如何才能從基於關鍵數組的數據庫表中訪問我的信息(14,16,17)?

我們假設在表中有很多數據被存儲,但我只是想採用ID爲14,16,17的數據。從ID選擇後面我將執行數學運算來查找三者中最高的價值。

+0

目前尚不清楚你想達到什麼樣的這裏...你想知道如何做一個SQL:「SELECT * FROM table WHERE id = ???」 –

+1

'SELECT data FROM table WHERE id IN(14,16,17)' – umka

+0

不,我想使用動態而不是手動的條件。條件是基於關鍵數組我有 –

回答

1
$arry = array(14 => 0.46902846738366,16 => 0.40289063077504,17 =>0.54903658244928); 
$idarray=array_keys($arry); 

"SELECT data FROM table WHERE id IN (".implode(',',$idarray).")"; 
0
$myArray = array ( 
    '14' => 0.46902846738366, 
    '16' => 0.40289063077504, 
    '17' => 0.54903658244928, 
) ; 

$myArrayForQuery = implode(',',array_keys($myArray)); 

$myQuery = 'SELECt * FROM mytable where id in ('.$myArrayForQuery.');'; 
1

獲得使用IDS行把這個代碼在你的模型(我們稱之爲模型)

function get($ids) { 
return $this->db->where_in('id', $ids)->order_by->('my_col_name')->get('storage')->result(); // or result_array(); 
} 

,並調用它

$data = $this->model->get(array_keys($zip_array));// or $this->model->get($array_a); from your last question 

在$數據數據將從最大值到最小值進行排序,因此您自動獲得最大值!只需要my_col_name更改爲您的列名

更新:當然,你只能選擇最大值,如果你想要這個,改變得到()這個

return $this->db->where_in('id', $ids)->select_max('my_col_name')->get('storage')->row(); 
相關問題