Не выводит последнюю строку из таблицы sql?

Есть таблица stat с колонками delivery и cost (по умолчанию = 0), получаю из нее значения построчно с условием (если delivery = 'Почта' и cost=0), после вывода вношу изменения в колонку cost, и при следующем обращении к таблице выводится следующая строчка отвечающая условию.
//Получаю данные заказа для обработки почты
function getOne(){
    $conn = connect();
    $result = mysqli_query($conn,"SELECT * FROM `stat`  WHERE `delivery`='Почта' AND `cost`='0'");
    if (mysqli_num_rows($result)>0){
        $row= mysqli_fetch_row($result);
        $id= $row[0];
        $result2 = mysqli_query($conn,"SELECT * FROM `order`  WHERE `id`='$id'");
        $row = mysqli_fetch_assoc($result) + mysqli_fetch_assoc($result2);
        echo json_encode($row);
    }
    else {
        echo "Ошибка в getOne";
    }
    mysqli_close($conn);
}

Вопрос в следующем, всё работает, но не выводит ни в какую последнюю строку отвечающую условию
  • Вопрос задан
  • 155 просмотров
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Вам следует использовать один запрос с джойном:
<?php
function getOne($conn) {
    $result = mysqli_query($conn,"
		SELECT * 
		FROM `stat` 
		JOIN `order` ON `order`.`id` = `stat`.`order_id` 
		WHERE `delivery`='Почта' AND `cost`='0'"
	);
	
    if (mysqli_num_rows($result)>0) {
	    while ($row = mysqli_fetch_assoc($result)) {
	        echo json_encode($row);
	    }
    }
    else {
        echo "Ошибка в getOne";
    }
    mysqli_close($conn);
}


share PHP code
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы