PHP не показывает все строки из таблицы
У меня есть таблица с именем cart
, и я хочу вернуть все строки из нее через PHP.
Поэтому я закодировал это:
$get_add = "SELECT * FROM cart WHERE ip_add = '1'";
$run_add = mysqli_query($con,$get_add);
$cart_items = [];
while($row_results = mysqli_fetch_array($run_add))
{
$item = array(
'table_id' => $row_results['table_id'],
'pro_id' => $row_results['product_id'],
'pro_title' => $row_results['product_title'],
'pro_price' => number_format($row_results['product_price'], '0', '', ','),
'pro_supplier' => $row_results['product_supplier'],
'pro_img' => $row_results['product_image'],
);
$cart_items[] = $item;
foreach($cart_items as $cart){
echo $cart['pro_title']
}
}
Так что это работает нормально, но единственная проблема заключается в том, что он показывает только один результат. Однако есть несколько строк, которые имеют одинаковое ip_add
значение 1
.
Заранее спасибо!
2 ответа:
Переместите свой внутренний
foreach
цикл за пределыwhile
следующим образом:while($row_results = mysqli_fetch_array($run_add)) { $item = array( 'table_id' => $row_results['table_id'], 'pro_id' => $row_results['product_id'], 'pro_title' => $row_results['product_title'], 'pro_price' => number_format($row_results['product_price'], '0', '', ','), 'pro_supplier' => $row_results['product_supplier'], 'pro_img' => $row_results['product_image'], ); $cart_items[] = $item; } foreach($cart_items as $cart){ echo $cart['pro_title']; }
В принципе, то, что вы делаете, всегда возвращает последний элемент массива
$cart_itmes
, потому что он находится внутри циклаwhile
. Поэтому измените его так, как я сделал в приведенном выше фрагменте.
Удалите
foreach
петлю из$cart_items
и добавьте ее послеwhile
петли. Поскольку вы добавляете значения в$cart_items
, то вы зацикливаете это$cart_items
, поэтому в первый раз вы получите одно значение, затем два значения, а затем три значения и так далее... Еще одна вещь добавьте;
в конце строкиecho $cart['pro_title']
.while ($row_results = mysqli_fetch_array($run_add)) { $item = array( 'table_id' => $row_results['table_id'], 'pro_id' => $row_results['product_id'], 'pro_title' => $row_results['product_title'], 'pro_price' => number_format($row_results['product_price'], '0', '', ','), 'pro_supplier' => $row_results['product_supplier'], 'pro_img' => $row_results['product_image'], ); $cart_items[] = $item; } foreach ($cart_items as $cart) { echo $cart['pro_title']; }
Добавление
foreach
в конце приведет к получению всех записей в$cart_items
.