@9StarRu

Как узнать наличие записи в базе данных и получить нужные значения?

Пытаюсь проверить наличие записи в базе данных со статусом "NEW" и выполнить дальнейшие действия в зависимости от полученного ответа.

Мой код:

$result = mysqli_query($mysqli, "SELECT * FROM `Order` WHERE status='NEW'");

foreach($result as $row){
	
	$orderId = $row["orderId"];
	
	if($orderId == 'NEW') {


    print 'есть';
    print $orderId;		


	} else {
		
    print 'нет';
		
	}


}


Данный код отдает "нет".

UP.

Написал такую проверку, вроде бы заработало.

$result = mysqli_query($mysqli, "SELECT * FROM `Order` WHERE status='NEW'");

if($result->num_rows !== 0) {

    foreach($result as $row){
         
        $orderId = $row["orderId"];
		
    }


print 'есть';
print $orderId;



} else {
    echo 'нет';
}


Помогите разобраться, пожалуйста, очень давно не работал с базами данных.
Возможно можно обойтись без foreach?

Спасибо!
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Весь код у вас уже есть.
Вам только надо самому решить, чего вы хотите - проверить наличие записей, или выполнить дальнейшие действия.

Код у вас - для второго.
А пытаетесь вы его использовать для первого.

Чтобы проверить, цикл не нужен. Чтобы обработать - КАК вы обойдетесь без цикла?

В принципе, я тут не вижу нужды проверять. Просто запросить, да обработать.
Но если прям жить не можете без проверки, то можно например использовать переменную
$found = false;
foreach($result as $row){
    $found = true;
    $orderId = $row["orderId"];
    // делаете что хотите
}
if(!$found) {
    print 'нет';
}


Если запись может быть только одна, то еще проще

$result = mysqli_query($mysqli, "SELECT * FROM `Order` WHERE status='NEW'");
$row = $result->fetch_assoc();
if ($row) {
    $orderId = $row["orderId"];
} else {
    print 'нет';
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы