category
とaccount_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つの項目を返しています。\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
whileループで '$ path [] = ...'に '$ path = ... 'を置き換えてください。それ以外の場合は、配列を要素に追加するのではなく、現在の値で置き換えるだけです。 – xato
どうもありがとうございます!それはなぜアイテムが繰り返されるのか、どんな考えでも動作しますか? – Alan