Я пишу php-код, который должен отображать некоторые данные БД в виде группы массивов, разделенных запятыми.
Код выглядит следующим образом:
include('inc_db.php');
$query = "SELECT * FROM product WHERE p_shop_id=1";
$result = $conn->query($query);
if ($result->num_rows > 0) {
while($row = $result->fetch_array()) {
if($result->num_rows == 1)
echo "[" .$row['p_description'] ."," .$row['p_category'] ."," .$row['p_cost'] ."," .$row['p_stock'] ."]";
else
echo "[" .$row['p_description'] ."," .$row['p_category'] ."," .$row['p_cost'] ."," .$row['p_stock'] ."], ";
}
}
$conn->close();
*включаемая строка - это подключение к БД.
В этой строке:
if($result->num_rows == 1)
Я пытаюсь определить, дошел ли цикл до последней строки результата, чтобы эхо-строка заканчивалась без запятой (как это происходит во фразе else).
Я предполагаю, что неправильно сделал оператор if, потому что когда я запускаю программу, я получаю массив с запятой в конце каждой строки, включая последнюю.
результат:
[Eggs, Food, 20, 20], [Coca Cola, Drinks, 5, 30],
Ожидаемый результат:
[Eggs, Food, 20, 20], [Coca Cola, Drinks, 5, 30]
(без запятой в конце)
Так как же правильно определить, что цикл while добрался до последней строки?
json_encode
- person u_mulder   schedule 07.07.2020