@dsk_qq

Как сравнить переменную с базой данных и вывести ответ?

Здравствуйте. Додумался со сравнением, но почему не выводит "Не молодец" когда он не находит данных в базе? Просто пустая страница
<?php
 
  $host = 'localhost';  // Хост, у нас все локально
  $user = 'db';    // Имя созданного вами пользователя
  $pass = 'pass'; // Установленный вами пароль пользователю
  $db_name = 'db';   // Имя базы данных
  $link = mysqli_connect($host, $user, $pass, $db_name); // Соединяемся с базой
 
  if (!$link) {
    echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
    exit;
  }
  $ip = $_GET['ip'];
  $sql = mysqli_query($link, "SELECT * FROM `AD_PAYMENTS` WHERE `status`='1' AND `username`='$ip'");
  while ($result = mysqli_fetch_array($sql)) {
    echo "{$result['username']}<br>";
    if ($ip==$result['username']){
        echo "молодец";
    }else{
        echo "не молодец";
    }
  }
?>
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
@dsk_qq Автор вопроса
<?php

  $host = 'localhost';  // Хост, у нас все локально
  $user = 'db';    // Имя созданного вами пользователя
  $pass = 'pass'; // Установленный вами пароль пользователю
  $db_name = 'db';   // Имя базы данных
  $link = mysqli_connect($host, $user, $pass, $db_name); // Соединяемся с базой

  if (!$link) {
    echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
    exit;
  }
  $ip = $_GET['ip'];
  $sql = mysqli_query($link, "SELECT * FROM `AD_PAYMENTS` WHERE `status`='1' AND `username`='$ip'");
  $result = mysqli_fetch_array($sql);
	if ($ip==$result['username'] AND $ip!=null){
		echo "молодец";
	}else{
		echo "не молодец";
	} 
  
?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@VitiaKotik
Вы добавили условие `username`='$ip', и если его нету в бд, то и в result пусто.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если ничего не найдено, то первый же вызов mysqli_fetch_array() возвращает false и внутренняя часть цикла не выполняется.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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