Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: поиск книг по автору не работает запрос
 
 автор: jelenad   (08.05.2009 в 13:31)   письмо автору
 
 

хочу сделать поиск книг по автору
есть файл search.html
<html>
<head>
<title>Результат поиска книг по автору</title>
</head>
<body>
<?php
     error_reporting
(E_ALL|E_NOTICE) ; 
    
    require_once(
'connect.php'); // соединяемся с БД


       
if (empty($_POST['author_name']))
       die (
"Не все данные введены.<br>
       Пожалуйста, вернитесь назад и закончите ввод"
);

$author_name=$_POST['author_name'];
$an "'" mysql_escape_string($author_name) . "'"

         
$sql "
              SELECT k.title, k.price, k.description,k.image, a.author_name,p.publisher_name
              FROM kniga k
              LEFT JOIN author a ON k.author_id=a.author_id
              LEFT JOIN publisher p ON k.publisher_id=p.publisher_id
              WHERE author_name = 
$an 
           "
;

        
         
$res mysql_query($sql) or die(mysql_error());
              
            if(
mysql_num_rows($res) == 0)
            echo 
"Книг с таким автором не найдено";
            else
                { 

                echo 
"<table border="0">";
                while(
$row mysql_fetch_array($res))
                      {

       echo 
" <table border=0 width=100%> ";
       echo 
" <tr> ";
       echo 
" <td colspan=3>".$row['title']."</td>";
       echo 
"</tr>";

       echo 
" <tr> ";
       echo 
" <td  rowspan=4 width=10%><img src=\"" $image_dir $row['image'] . "\" width=120 hight=160></td>";
       echo 
" <td width=10% align=left><b>"."Автор: " $row['author_name']." </td>";
       echo 
" </tr> ";
    
       
       echo 
" <tr> ";
       echo 
" <td colspan=3>".$row['description']."</td>";
       echo 
"</tr>";
       
if (
$row['publisher_name']!=NULL

 {
       echo 
" <tr > ";
       echo 
" <td align=right width=40%><b>"."Издательство:"."</b></td>";
       echo 
" <td align=left>".$row['publisher_name']."</td>";
       echo 
" </tr> ";
}
    
       echo 
" <tr> ";
       echo 
" <td align=right width=40%><b>"."Цена:"."</b></td>";
       echo 
" <td align=left>".$row['price']." Ls</td>";
       echo 
"</tr>";
       echo 
" </table> ";
       echo 
" <HR> ";
       echo 
" <br> "
}

?> 

</body>
</html>   

Не могу понять где я сделала ошибку? имеется error_reporting(E_ALL|E_NOTICE) ; для вывода ошибок но при выполнении запроса ничего не выводится....

  Ответить  
 
 автор: Trianon   (08.05.2009 в 13:39)   письмо автору
 
   для: jelenad   (08.05.2009 в 13:31)
 

Может у Вас в настройках php вывод ошибок запрещен?
( display_errors = Off в php.ini или аналогичная инструкция в .htaccess)

Нарушения синтаксиса видны даже по цветовой подсветке ключевых слов у Вас в посте.

  Ответить  
 
 автор: jelenad   (08.05.2009 в 13:47)   письмо автору
 
   для: Trianon   (08.05.2009 в 13:39)
 

в php.ini
display_errors = On

  Ответить  
 
 автор: Trianon   (08.05.2009 в 13:51)   письмо автору
 
   для: jelenad   (08.05.2009 в 13:47)
 

Тогда почему у меня он показывает
Parse error: syntax error, unexpected '"' in Z:\home\localhost\www\Tests\tmp\temp2.php on line 24

?

  Ответить  
 
 автор: jelenad   (08.05.2009 в 13:58)   письмо автору
48.2 Кб
 
   для: Trianon   (08.05.2009 в 13:51)
 

вот мой php.ini вроде всё как надо. в чём тогда проблема???Помогите пожалуйста

  Ответить  
 
 автор: Trianon   (08.05.2009 в 14:59)   письмо автору
 
   для: jelenad   (08.05.2009 в 13:58)
 

а в .htaccess что?
Во всех от корня документов , до каталога, где скрипт лежит

  Ответить  
 
 автор: jelenad   (08.05.2009 в 15:07)   письмо автору
118 байт
 
   для: Trianon   (08.05.2009 в 14:59)
 

.htaccess а с помощью чего его открыть???Помогите...

  Ответить  
 
 автор: Trianon   (08.05.2009 в 15:47)   письмо автору
 
   для: jelenad   (08.05.2009 в 15:07)
 

что еще можно посоветовать ...
в том же php.ini снять комментарий перед строкой задающей имя фaqkf регистрации ошибок, прописать в нем полный путь, и смотреть туда.
; Log errors to specified file.
error_log = c:\web\errors.txt
.htaccess открывается любым текстовым редактором.

  Ответить  
 
 автор: jelenad   (08.05.2009 в 15:59)   письмо автору
 
   для: Trianon   (08.05.2009 в 15:47)
 

тоесть он будет показывать ошибки в errors.txt ???

  Ответить  
 
 автор: Trianon   (08.05.2009 в 16:01)   письмо автору
 
   для: jelenad   (08.05.2009 в 15:59)
 

он будет их туда складывать.

Я понятия не имею, почему у Вас не показывает ошибки прямо на экране.
Все предположения по этому вопросу я сделал.
Разбираться досконально никакого интереса нет. Тем более - на форуме.

  Ответить  
 
 автор: jelenad   (08.05.2009 в 16:09)   письмо автору
 
   для: Trianon   (08.05.2009 в 16:01)
 

Спасибо Вам и на этом.
я в настройках не сильна поэтому оставлю как есть.......а то натворю еще чего нето.
Мне главное теперь разобратся где именно у меня ошибка......

  Ответить  
 
 автор: Trianon   (08.05.2009 в 16:24)   письмо автору
 
   для: jelenad   (08.05.2009 в 16:09)
 

оставив как есть, разобраться откуда у Вас лезут ошибки, Вы не сможете.

  Ответить  
 
 автор: jelenad   (08.05.2009 в 17:17)   письмо автору
 
   для: Trianon   (08.05.2009 в 16:24)
 

а в какой строке у меня ошибка???

  Ответить  
 
 автор: Trianon   (08.05.2009 в 17:22)   письмо автору
 
   для: jelenad   (08.05.2009 в 17:17)
 

                echo "<table border="0">"; 

  Ответить  
 
 автор: jelenad   (08.05.2009 в 17:30)   письмо автору
 
   для: Trianon   (08.05.2009 в 17:22)
 

файл search.html
<html>
<head>
<title>Поиск книг по автору</title>
</head>
<body>

<form action="result.php" method="post">

      Введите название автора<br><input type="text" name="author_name" size="60" value=""><br>

     <input type="submit" name="submit" value="Искать">
     <input type="reset" name="reset" value="Очистить">

</form>
 
</body>
</html>


файл result.php

<html>
<head>
<title>Результат поиска книг по автору</title>
</head>
<body>
<?php
    error_reporting
(E_ALL|E_NOTICE) ; 
    require_once(
'connect.php'); // соединяемся с БД

       
if (empty($_POST['author_name']))
       die (
"Не все данные введены.<br>
       Пожалуйста, вернитесь назад и закончите ввод"
);

$author_name=$_POST['author_name'];
$an "'" mysql_escape_string($author_name) . "'"

         
$sql "
              SELECT k.title, k.price, k.description,k.image, a.author_name,p.publisher_name
              FROM kniga k
              LEFT JOIN author a ON k.author_id=a.author_id
              LEFT JOIN publisher p ON k.publisher_id=p.publisher_id
              WHERE author_name = '
$an
           "
;
        
$res mysql_query($sql) or die(mysql_error());
              
            if(
mysql_num_rows($res) == 0)
                   echo 
"Книг с таким автором не найдено";
                       else
                          { 
                            echo 
"<table border=0>";
                                while(
$row mysql_fetch_array($res))
                                                      {
       echo 
" <table border=0> ";
       echo 
" <tr> ";
       echo 
" <td colspan=3>".$row['title']."</td>";
       echo 
"</tr>";

       echo 
" <tr> ";
       echo 
" <td  rowspan=4 width=10%><img src=\"" $image_dir $row['image'] . "\" width=120 hight=160></td>";
       echo 
" <td width=10% align=left><b>"."Автор: " $row['author_name']." </td>";
       echo 
" </tr> ";
    
       
       echo 
" <tr> ";
       echo 
" <td colspan=3>".$row['description']."</td>";
       echo 
"</tr>";
       
if (
$row['publisher_name']!=NULL

 {
       echo 
" <tr > ";
       echo 
" <td align=right width=40%><b>"."Издательство:"."</b></td>";
       echo 
" <td align=left>".$row['publisher_name']."</td>";
       echo 
" </tr> ";
}
    
       echo 
" <tr> ";
       echo 
" <td align=right width=40%><b>"."Цена:"."</b></td>";
       echo 
" <td align=left>".$row['price']." Ls</td>";
       echo 
"</tr>";
       echo 
" </table> ";
       echo 
" <HR> ";
       echo 
" <br> "
}
}
  
?> 

</body>
</html> 

выдаёт ошибку:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
for the right syntax to use near 'Набоков''' at line 5

  Ответить  
 
 автор: jelenad   (08.05.2009 в 14:09)   письмо автору
 
   для: Trianon   (08.05.2009 в 13:39)
 

каким цветом указаны ошибки???

  Ответить  
 
 автор: Trianon   (08.05.2009 в 14:37)   письмо автору
 
   для: jelenad   (08.05.2009 в 14:09)
 

Это конечно интересный подход.
Исправить ошибку, а потом спрашивать, каким цветом она указана.

  Ответить  
 
 автор: jelenad   (08.05.2009 в 14:46)   письмо автору
 
   для: Trianon   (08.05.2009 в 14:37)
 

я исправляла по ходу просмотра кода каждую строку но в итоге все равно не работает............ где тут ошибка??

  Ответить  
 
 автор: Trianon   (08.05.2009 в 14:56)   письмо автору
 
   для: jelenad   (08.05.2009 в 14:46)
 

Ошибка синтаксиса , но уже на другой строке.

  Ответить  
 
 автор: jelenad   (08.05.2009 в 15:06)   письмо автору
 
   для: Trianon   (08.05.2009 в 14:56)
 

где именно??? здесь
 WHERE author_name = $an
?
<html>
<head>
<title>Результат поиска книг по автору</title>
</head>
<body>
<?php
     error_reporting
(E_ALL|E_NOTICE) ; 
    
    require_once(
'connect.php'); // соединяемся с БД


       
if (empty($_POST['author_name']))
       die (
"Не все данные введены.<br>
       Пожалуйста, вернитесь назад и закончите ввод"
);

$author_name=$_POST['author_name'];
$an "'" mysql_escape_string($author_name) . "'"

         
$sql "
              SELECT k.title, k.price, k.description,k.image, a.author_name,p.publisher_name
              FROM kniga k
              LEFT JOIN author a ON k.author_id=a.author_id
              LEFT JOIN publisher p ON k.publisher_id=p.publisher_id
              WHERE author_name = 
$an 
           "
;

        
         
$res mysql_query($sql) or die(mysql_error());
              
            if(
mysql_num_rows($res) == 0)
            echo 
"Книг с таким автором не найдено";
            else
                { 

                echo 
"<table border="0">";
                while(
$row mysql_fetch_array($res))
                      {

       echo 
" <table border=0 width=100%> ";
       echo 
" <tr> ";
       echo 
" <td colspan=3>".$row['title']."</td>";
       echo 
"</tr>";

       echo 
" <tr> ";
       echo 
" <td  rowspan=4 width=10%><img src=\"" $image_dir $row['image'] . "\" width=120 hight=160></td>";
       echo 
" <td width=10% align=left><b>"."Автор: " $row['author_name']." </td>";
       echo 
" </tr> ";
    
       
       echo 
" <tr> ";
       echo 
" <td colspan=3>".$row['description']."</td>";
       echo 
"</tr>";
       
if (
$row['publisher_name']!=NULL

 {
       echo 
" <tr > ";
       echo 
" <td align=right width=40%><b>"."Издательство:"."</b></td>";
       echo 
" <td align=left>".$row['publisher_name']."</td>";
       echo 
" </tr> ";
}
    
       echo 
" <tr> ";
       echo 
" <td align=right width=40%><b>"."Цена:"."</b></td>";
       echo 
" <td align=left>".$row['price']." Ls</td>";
       echo 
"</tr>";
       echo 
" </table> ";
       echo 
" <HR> ";
       echo 
" <br> "
}

?> 

</body>
</html> 

  Ответить  
 
 автор: nikita2206   (08.05.2009 в 17:27)   письмо автору
 
   для: jelenad   (08.05.2009 в 15:06)
 

else 
                {  

                echo "<table border="0">"; 
                while($row = mysql_fetch_array($res)) 
                      {

  Ответить  
 
 автор: jelenad   (08.05.2009 в 18:28)   письмо автору
 
   для: nikita2206   (08.05.2009 в 17:27)
 

 if (empty($_POST['author_name']))
       die ("Не все данные введены.<br>
       Пожалуйста, вернитесь назад и закончите ввод");

$author_name=$_POST['author_name'];
$an = "'" . mysql_escape_string($author_name) . "'"; 

         $sql = "
              SELECT k.title, k.price, k.description,k.image, a.author_name,p.publisher_name
              FROM kniga k
              LEFT JOIN author a ON k.author_id=a.author_id
              LEFT JOIN publisher p ON k.publisher_id=p.publisher_id
              WHERE author_name = '$an' 
           "; 
а тут все правильно????


всё я сделала УРААААА работает!!!!!!

  Ответить  
 
 автор: Trianon   (08.05.2009 в 18:32)   письмо автору
 
   для: jelenad   (08.05.2009 в 18:28)
 

Вы в апострофах запутались.

  Ответить  
 
 автор: jelenad   (08.05.2009 в 18:32)   письмо автору
 
   для: Trianon   (08.05.2009 в 18:32)
 

всё я сделала УРААААА работает!!!!!!
<html>
<head>
<title>Результат поиска книг по автору</title>
</head>
<body>
<?php
    error_reporting
(E_ALL|E_NOTICE) ; 
    require_once(
'connect.php'); // соединяемся с БД
$image_dir '/';
       if (empty(
$_POST['author_name']))
       die (
"Не все данные введены.<br>
       Пожалуйста, вернитесь назад и закончите ввод"
);

$author_name=$_POST['author_name'];
$an "'" mysql_escape_string($author_name) . "'"

         
$sql "
              SELECT k.title, k.price, k.description,k.image, a.author_name,p.publisher_name
              FROM kniga k
              LEFT JOIN author a ON k.author_id=a.author_id
              LEFT JOIN publisher p ON k.publisher_id=p.publisher_id
              WHERE author_name = 
$an
           "
;
        
$res mysql_query($sql) or die(mysql_error());
              
            if(
mysql_num_rows($res) == 0)
                   echo 
"Книг с таким автором не найдено";
                       else
                          { 
                            echo 
"<table border=0>";
                                while(
$row mysql_fetch_array($res))
                                                      {
       echo 
" <table border=0> ";
       echo 
" <tr> ";
       echo 
" <td colspan=3>".$row['title']."</td>";
       echo 
"</tr>";

       echo 
" <tr> ";
       echo 
" <td  rowspan=4 width=10%><img src=\"" $image_dir $row['image'] . "\" width=120 hight=160></td>";
       echo 
" <td width=10% align=left><b>"."Автор: " $row['author_name']." </td>";
       echo 
" </tr> ";
    
       
       echo 
" <tr> ";
       echo 
" <td colspan=3>".$row['description']."</td>";
       echo 
"</tr>";
       
if (
$row['publisher_name']!=NULL

 {
       echo 
" <tr > ";
       echo 
" <td align=right width=40%><b>"."Издательство:"."</b></td>";
       echo 
" <td align=left>".$row['publisher_name']."</td>";
       echo 
" </tr> ";
}
    
       echo 
" <tr> ";
       echo 
" <td align=right width=40%><b>"."Цена:"."</b></td>";
       echo 
" <td align=left>".$row['price']." Ls</td>";
       echo 
"</tr>";
       echo 
" </table> ";
       echo 
" <HR> ";
       echo 
" <br> "
}
}
    
?> 

</body>
</html> 

  Ответить  
 
 автор: jelenad   (08.05.2009 в 19:26)   письмо автору
 
   для: Trianon   (08.05.2009 в 18:32)
 

я сделала отдельно поиск книг по названию, по автору и по издательству а как сделать чтобы это всё было бы в одном запросе???

  Ответить  
 
 автор: tri-edge   (08.05.2009 в 19:35)   письмо автору
 
   для: jelenad   (08.05.2009 в 19:26)
 

видимо стоит исправить
$title=$_POST['publisher_name'];

на
$publisher_name=$_POST['publisher_name'];

  Ответить  
 
 автор: jelenad   (08.05.2009 в 19:52)   письмо автору
 
   для: tri-edge   (08.05.2009 в 19:35)
 

да я уже заметила и исправила

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования