Я использую SELECT * FROM products WHERE id IN ('$arrayImplodedToStr')
SQL-запрос для получения нескольких значений из базы данных одновременно.Запрос работает нормально, потому что когда я повторяю $q
, я вижу все элементы массива, преобразованные в идентификаторы в запросе, и их много.Но когда я делаю запрос и сохраняю его внутри массива, а затем использую mysqli_fetch_assoc()
внутри цикла while
, чтобы получить все строки из запроса, я всегда получаю только один и первый элемент.И не могу понять, почему?
Код:
session_start();
require_once('navigation.php');
require_once('database_connection.php');
if(empty($_SESSION['cart'])) {
$_SESSION['cart'] = array();
}
array_push($_SESSION['cart'], $_GET['product_id']);
$arrayImplodedToStr = implode(',', $_SESSION['cart']);
$q = "SELECT * FROM products WHERE id IN ('$arrayImplodedToStr')";
$result = mysqli_query($dbc, $q);
mysqli_query($dbc, $q);
$allRows = [];
while($row = mysqli_fetch_assoc($result)) {
$allRows[] = $row;
}
foreach ($allRows as $cartItems) {
echo $cartItems['name'];
}
Спасибо.