Не Удается Получить Ответ Из Mysql

  • Автор темы klerk
  • Дата начала
K

klerk

Добрый вечер! Есть скрипт, который получает информацию из MYSQL. Если посылать запрос, получающий все данные из базы данных, то все работает, если же добавить условие (Where......) то просто появляется веб-страница с белым фоном, и никаких данных... Ошибок никаких не выдается. Информация в базе данных, которую запрашиваю, точно есть, проверял через PhpMyAdmin....

Вот код
PHP:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

if(!empty($Nazvanie_search))
{$S=Nazvanie_search;}
else {$S=Imya_search;};
$conn = mysql_connect("***", "***", "***");
mysql_select_db(****);
$SQL = 'SELECT * FROM `books` where (`Avtor`="$S" or `Nazvanie`="$S")';
//$SQL="SELECT * FROM `books`";
$rez = mysql_query($SQL, $conn)
or die(mysql_error());
while($row=mysql_fetch_array($rez))
{
echo 'Avtor '."$row[1]".'<br/>';

echo 'Nazvanie '."$row[0]".'<br/>';
}
?>

Проглядел все глаза, но в чем дело понять не могу...
 
B

Bugnet

А у Вас точно есть такой автор в БД -Nazvanie_search ?
$S=$Nazvanie_search;
$S=$Imya_search;
 
K

klerk

А у Вас точно есть такой автор в БД -Nazvanie_search ?

Есть. Это каталог книг в домашней библиотеке. Я несколько книг в этот каталог уже добавил. Если просто выводить все книги, которые есть в каталоге, то все работает. Если пытаться найти конкретного автора (Иванова) у которого есть несколько книг, то скрипт не работает.
 
B

Bugnet

А как на счёт того, что Вы проверяете не пуста ли переменная $Nazvanie_search, а потом значение этой переменной дальше не используете? Переменной $S присваиваете строку Nazvanie_search, иначе - присваиваете строку Imya_search.
Я же написал $S=$Nazvanie_search, а у Вас $S=Nazvanie_search. Вот и получается, что ничего не выводится и ошибок нет. В БД есть автор Иванов, но там нет автора Imya_search.
Или я чего-то недопонял?
 
K

klerk

А как на счёт того, что Вы проверяете не пуста ли переменная $Nazvanie_search, а потом значение этой переменной дальше не используете? Переменной $S присваиваете строку Nazvanie_search, иначе - присваиваете строку Imya_search.
Я же написал $S=$Nazvanie_search, а у Вас $S=Nazvanie_search. Вот и получается, что ничего не выводится и ошибок нет. В БД есть автор Иванов, но там нет автора Imya_search.
Или я чего-то недопонял?
Переменная принимает значение Иванов. Проверял с помощью phpinfo(32). На всякий случай проверю еще раз.
 
B

Bugnet

Посмотрите так:
<?php
$Imya_search = "Ivanov";
if(!empty($Nazvanie_search))
{$S=Nazvanie_search;}
else {$S=Imya_search;};
echo $S;
?>
 
K

klerk

Посмотрите так:
<?php
$Imya_search = "Ivanov";
if(!empty($Nazvanie_search))
{$S=Nazvanie_search;}
else {$S=Imya_search;};
echo $S;
?>
Проверил точно так как Вы подсказали. Действительно не хватает символа$ и переменная принимает значение Imya_search. В вашем скрипте исправил - стало Иванов. Исправляю у себя - все по прежнему, белый экран. Единственное, что приходит в голову, что в mysql ничего не отправляется поэтому нулевой результат поиска, пустой экран и отсутствие ошибок.
 
B

Bugnet

Cоздал у себя на компе (сервер Денвер) базу данных и всё из неё извлёк таким образом:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$Imya_search = "Ivanov";
if(!empty($Nazvanie_search))
{$S=$Nazvanie_search;}
else {$S=$Imya_search;};
$db = mysql_connect("localhost", "root", "");//Своё подключение
mysql_select_db ("mysql",$db);//своя база данных
$rez = mysql_query ("SELECT * FROM books WHERE Avtor='$S' or Nazvanie='$S'", $db)
or die(mysql_error());
while($row=mysql_fetch_array($rez))
{
echo 'Avtor '."$row[1]".'<br/>';

echo 'Nazvanie '."$row[0]".'<br/>';
}

?>
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!