Bạn có thể làm một trong hai, nhưng truy vấn IN hiệu quả hơn nhiều cho mục đích này đối với bất kỳ truy vấn lớn nào. Tôi đã thực hiện một số thử nghiệm đơn giản từ lâu cho thấy sử dụng cấu trúc IN nhanh hơn khoảng 10 lần cho việc này. Nếu bạn đang hỏi liệu cú pháp có đúng không thì có, nó có vẻ ổn, ngoại trừ việc thiếu dấu chấm phẩy để hoàn thành câu lệnh.
CHỈNH SỬA :Có vẻ như câu hỏi thực tế bạn đang hỏi là "tại sao những truy vấn này chỉ trả về một giá trị". Chà, nhìn vào mã mẫu bạn đã đăng, vấn đề là ở đây:
$fetch = mysql_fetch_assoc($result) or die (mysql_error());
$itemsCollected = $fetch['item_name'];
echo $itemsCollected;
Bạn cần lặp lại và lặp lại cho đến khi không còn kết quả nào được tìm nạp, vì Pax đã chỉ ra . Xem trang hướng dẫn sử dụng PHP để biết mysql_fetch_assoc :
$sql = "SELECT item_name from items WHERE item_id IN('s001','a012')";
$result = mysql_query($sql);
if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
// then create $userid, $fullname, and $userstatus
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}
mysql_free_result($result);