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

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

klerk

#1
Добрый вечер! Есть скрипт, который получает информацию из 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

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

klerk

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

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

Bugnet

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

klerk

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

Bugnet

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

klerk

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

Bugnet

#8
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/>';
}

?>