Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Буду признателен за помощь в обработке форм PHP+MySQL
Форумы портала PHP.SU » » HTTP и PHP » Буду признателен за помощь в обработке форм PHP+MySQL

Страниц (1): [1]
 

1. evg1401 - 23 Сентября, 2017 - 10:19:05 - перейти к сообщению
Я только учу php, поэтому не смейтесь над ошибками, какие найдете.
Написал "учебную" функцию для поиска в БД, при этом я хочу ограничиться одним файлом-обработчиком и в
CODE (html):
скопировать код в буфер обмена
  1. <form action = "$self" method = "get">
поставил переменную, которая включает в себя результат работы $_SERVER['PHP_SELF'].
При выполнении программы после отправки данных формы выдает ошибку: The requested URL /$self was not found on this server; видимо в результате не обнаруживается она. Помогите пжл найти причину!
Собственно сам код:

PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5.         <title>function</title>
  6. </head>
  7. <body>
  8. <?
  9. $search = htmlentities($_GET["search"]);
  10. $self = htmlentities($_SERVER['PHP_SELF']);
  11. if ($search !=NULL) {
  12.         echo "$search";
  13.         echo query_db($search);
  14. }
  15. else {
  16.         echo('<form action = "$self" method = "GET">
  17.         <p>Строка поиска:<input type = "text" name = "search"/>
  18.         <input type = "submit" value = "искать"/>
  19.         </form>');
  20. }
  21. ?>
  22. </body>
  23. </html>
  24. <?
  25.  
  26. function query_db ($qstring) {
  27. include_once('db.php');
  28. require_once('DB.php');
  29.  
  30. $connection = DB::connect("mysql://$db_user:$db_pass@$db_host/$db_name");
  31.  
  32. if (DB::isError($connection)) {
  33.         die("нет соединения с $db_name: <br />" .DB::errorMessage($connection));
  34. }
  35.         $qstring = stripslashes($qstring);
  36. }
  37. $qstring = mysql_real_escape_string($qstring);
  38.  
  39. $query = "SELECT * FROM auto WHERE 'auto' like '%$qstring%'";
  40. $result = $connection->query($query);
  41.  
  42. if (DB::isError($query)) {
  43.         die("ошибка запроса $query: <br />" .DB::errorMessage($result));
  44. }
  45.  
  46. while ($total = $result->fetchRow()) {
  47.         echo '<p>результаты поиска по ключевому слову "<b>$qstring</b>: <br />"';
  48.         echo '$driver = $total[1] "<br />"';
  49.        
  50. }
  51. }
  52. ?>
  53.  
2. Строитель - 23 Сентября, 2017 - 10:51:57 - перейти к сообщению
evg1401 переменную в форме надо писать:
CODE (html):
скопировать код в буфер обмена
  1. <!--или так-->
  2. <form action="<?= $self ?>" method="get">...</form>
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. //или так
  4. echo "<form action='{$self}' method='get'>...</form>";
  5.  
  6. //или так
  7. echo '<form action="'. $self .'" method="get">...</form>';

(Добавление)
Для вашего примера запись должна выглядеть так:
PHP:
скопировать код в буфер обмена
  1. echo '<form action="'. $self .'" method="get">
  2.    <p>Строка поиска:<input type="text" name="search" />
  3.    <input type="submit" value="искать" />
  4.    </form>';
3. evg1401 - 23 Сентября, 2017 - 10:58:31 - перейти к сообщению
[quote=Строитель]evg1401 переменную в форме надо писать:
CODE (html):
скопировать код в буфер обмена
  1. <!--или так-->
  2. <form action="<?= $self ?>" method="get">...</form>
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. //или так
  4. echo "<form action='{$self}' method='get'>...</form>";
  5.  
  6. //или так
  7. echo '<form action="'. $self .'" method="get">...</form>';

(Добавление)

Мужиик! Подошел вариант с контакенацией. Спасибо!

 

Powered by ExBB FM 1.0 RC1