Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2020, 08:22   #1
dsk_qq
Новичок
Джуниор
 
Регистрация: 17.06.2020
Сообщений: 3
По умолчанию Сравнение переменной с базой данных

Додумался со сравнением, но почему не выводит "Не молодец" когда он не находит данных в базе? Просто пустая страница
Код:
<?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 "не молодец";
    }
  }
?>
dsk_qq вне форума Ответить с цитированием
Старый 17.06.2020, 08:31   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

1. почему.
потому что в цикле (while) проверяются только только "молодцы"
в проверяемом наборе данных(НД) но не в базе(БД) присутствуют только выбранные строки
Цитата:
Код:
$sql = mysqli_query($link, "SELECT * FROM `AD_PAYMENTS` WHERE `status`='1' AND `username`='$ip'");
2. подсказки как исправить.
подозреваю что ровно одна для молодцов или ни одной для тех кто не собирается быть оным
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 17.06.2020 в 08:36.
evg_m вне форума Ответить с цитированием
Старый 17.06.2020, 08:56   #3
dsk_qq
Новичок
Джуниор
 
Регистрация: 17.06.2020
Сообщений: 3
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
1. почему.
потому что в цикле (while) проверяются только только "молодцы"
в проверяемом наборе данных(НД) но не в базе(БД) присутствуют только выбранные строки


2. подсказки как исправить.
подозреваю что ровно одна для молодцов или ни одной для тех кто не собирается быть оным
Хорошо, будем исправлять
dsk_qq вне форума Ответить с цитированием
Старый 17.06.2020, 10:09   #4
dsk_qq
Новичок
Джуниор
 
Регистрация: 17.06.2020
Сообщений: 3
По умолчанию

Вот решение моей проблемы
Код:
<?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 "не молодец";
  } 
  
?>
dsk_qq вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение переменной с элементами массива Viktoria14 Общие вопросы C/C++ 1 23.12.2018 20:46
Проверка ключа массива и сравнение со значением переменной Javany PHP 2 05.06.2018 07:04
С базой данных ArinaP БД в Delphi 5 23.05.2015 23:57
Сравнение переменной и значение поля таблицы. Solvinder Помощь студентам 0 16.01.2011 15:00
Сравнение утраивания переменной по значению и по ссылке fs444 Общие вопросы C/C++ 2 31.03.2010 19:17