2016-05-26 59 views
0

我想從我的數據庫中選擇值,當值!= 0,但我得到的是一個空數組。foreach循環數組sql查詢

在這裏我有一個數組中的所有名稱也在數據庫中。

$array = ['helm' , 'weapon', 'amulet', 'body', 'legs', "boots", 'shield', 'gloves', 'cape']; 

然後我放置在foreach循環陣列和放置_name_value名稱後面(在數據庫中它是helm_name = blabla_helm value = 10

當文本通過它放置在字我環後面在我query中,我儘量選擇name table (for example helm_name)和value table (for example helm_value)

foreach($array as $array_item){ 
    $array_item_name = $array_item.'_name'; 
    $array_item_value = $array_item.'_value'; 

    $sql = $db->prepare("SELECT ".$array_item_name." FROM player WHERE naam = :naam AND ".$array_item_value." != 0"); 
    $sql->execute(array(":naam" => $naam)); 
    $fetch = $sql->fetchAll(PDO::FETCH_ASSOC); 
} 

但是當我運行它是全部返回我做錯了什麼?

回答

0

請檢查數據庫錯誤值,也應該首先創建sql字符串並輸出它,以便您可以手動運行生成的sql語句。

+0

檢查數據庫錯誤值?並首先創建sql字符串,如'$ sql =「SELECT」。$ array_item_name。「FROM player WHERE naam =:naam AND」。$ array_item_value。「!= 0」;'然後'$ sql = $ db-> prepare $ SQL)'? – GetOn

+0

這就是簡單的調試技術;-) – digipenKH

+0

但我如何防止它返回和空陣列?因爲當我回顯$ sql時,它返回'SELECT helm_name FROM player WHERE naam =:naam AND helm_value!= 0'(對於數組中的每個項目,所以helm/weapon etcetc)是正確的,但仍然返回一個空數組有很多列,其值大於0 – GetOn