2012-03-06 13 views
0

categoryaccount_idが一致するテーブルのいずれかからimage_nameの値をすべて取得したいとします。 クエリは3つのテーブルを結合します。すべてのアイテムが必要なときに、列の最初のアイテムでMySQLiクエリが停止する

私はmysqliを使用しています。

SELECT image_name 
FROM add_images, item, user_item 
WHERE user_item.account_id = '$accountId' AND item.category = '$category'; 

しかし、このクエリは、結果を実行しvar_dump()とき、私は最初のレコードだけを見つけますか? 8項目ありますか?

私は、しかし、彼らはわからない、8回繰り返され、私はphpmyadminの中でこのクエリを実行すると、クエリが正常に実行され、それはすべての8つの項目を見つけ1. ​​

を返された配列にcount()を返すことによって、これを確認していますそれは約ですか?

私は*も、私が試してみましたimage_name.*、すべてが私のコードにしてphpmyadminのに失敗しimage_name*image_nameを交換しました。私は私が手オブジェクトダンプすると

は: How get all values in a column using PHP?

while($row = mysqli_fetch_array($result,MYSQL_ASSOC)) 

が、提案されたコードも失敗:

object(mysqli_result)#3 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(512) ["type"]=> int(0) } int(1) string(29) 

を私はまた、次の中で提案しようとしています。以下は

は私のコードです:

public function searchItems($accountId, $catagory,$userId){ 
    $imagePath = "D:\imagesdb\images\\" . $userId; 
    $thumb_path = $imagePath . "t\\"; 
    $conn = $this->create_connection('read'); 
    $sql = "SELECT image_name FROM add_images, item, user_item WHERE user_item.account_id='$accountId' AND item.catagory='$catagory'"; 
    $result = $conn->query($sql)or die(mysql_error()); 
    var_dump($result); 
    while ($row = mysqli_fetch_array($result)){ 
     $path = $thumb_path . $row['image_name']; 
     $result = count($path); 
     var_dump($result); 
     return $path; 
    } 
    $conn->close(); 
} 

私は私が期待される同じ問題を持って準備された文のも試してみました!

他にも提案はありますか?これは私を怒らせている!

答えて

1

whileループで無条件に$ pathを返しています。したがって、関数は1つの行をフェッチした後に戻ります。これはおそらくあなたが意図したものではありません。

おそらく、配列を作成し、その配列にすべての画像パスを追加し、関数の最後に配列を戻したいとします。

+0

提案していただきありがとうございます。はい、これは私が意図したものではありません!私は自分のコードを修正しましたが、それでもまだ1つの項目を返しています。\t $ path = array(); \t \t \tながら($行= mysqli_fetch_array($結果)){ \t \t \t \t $パス= $ thumb_path。 $ row ['image_name']; \t \t \t} \t \t \t return $ path; \t \t \t $ conn-> close(); \t \t} – Alan

+0

whileループで '$ path [] = ...'に '$ path = ... 'を置き換えてください。それ以外の場合は、配列を要素に追加するのではなく、現在の値で置き換えるだけです。 – xato

+0

どうもありがとうございます!それはなぜアイテムが繰り返されるのか、どんな考えでも動作しますか? – Alan

関連する問題