2016-05-26 6 views
0

私のデータベースから値を選択しようとしています!= 0が、私は空の配列です。foreachループ配列のSQLクエリ

ここには、データベースにもあるすべての名前の配列があります。

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

テキストがそれを介してワードIループの背後に配置されている場合、私は

(データベースにはhelm_name = blabla_helm value = 10ある)foreachループに配列を配置し、名前の後ろに_name_valueを配置私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

データベースのエラー値を確認しますか? $ array_item_value "、$ array_item_value"、$ array_item_value "、$ array_item_value"、$ array_item_value "、$ array_item_value"、$ array_item_value "のように最初に' $ sql = "SELECT" $ sql) '? – GetOn

+0

ちょっと単純なデバッグテクニック;-) – digipenKH

+0

しかし、どうやってそれが返って空の配列になるのを防ぐのですか? $ sqlをエコーし​​たときに、SELECT helm_name FROM player where naam =:naam AND helm_value!= 0'(配列内のすべての項目についてhelm/weapon etcetc)を返しますが、正しいときに空の配列を返します0より上の 'value'を持つ列がたくさんあります – GetOn

関連する問題