Вобщем ситуация такая: форма и обработчик находяться на одной станице, из формы передаются параметры обработчику и производятся соответствующие изменения на странице, но проблема в том, что при этом обнуляется информация в форме. Как зделать так, чтобы информация в форме необнулялась?
Код (Text): <input type="text" name="blabla" value="<? echo (isset($_POST['blabla'])) ? $_POST['blabla']:'';?>">
Лучше так Код (Text): <input type="text" name="blabla" value="<? echo (isset($_POST['blabla'])) ? htmlspecialchars($_POST['blabla']):'';?>"> На случай если в строке будут двойные кавычки. А для TEXTAREA, также и символы <>
Учусь делать "Запросы к базе данных с использованием информации из формы" База данных mysql. Использую PEAR DB. Есть таблица monthnew в ней два столбца month и days. Требуется на основе инструкции LIKE построить предложение поиска по столбцу month. Чтобы, например, при вводе August форма выдала таблицу: Month__Days August_31__ Вот сам php код. PHP: <?php // Проверка и вывод на экран критических ошибок ini_set('display_errors',1); error_reporting(E_ALL ^E_NOTICE); // Задать таймзону date_default_timezone_set('Europe/Moscow'); // Запросы к базе данных с использованием информации из формы function query_db($qstring) { include('db_login.php'); // Параметры соединения с базой данных require_once('C:\PHP\PEAR\DB.php'); // PEAR DB $connection = DB::connect("mysql://$db_username:$db_password@$db_host/$db_database"); if (DB::isError($connection)) { die("Error connecting to database:<br/>". DB::errorMessage($connection)); } else { print " Connection was successful!<br />"; } if (get_magic_quotes_gpc()) { // Защита от инъекции SQL $qstring = stripslashes($qstring); } $qstring = mysql_real_escape_string($qstring); $query = "SELECT month, days". "FROM monthnew". "WHERE month like '%$qstring%'"; // Построение строки запроса $result = $connection->query($query); if (DB::isError($result)) { die("The request failed:<br />". $query." ".DB::errorMessage($result)); } // Проверка успешности процесса else { print " The process of successful!<br />"; } echo('<table border="1">'); echo '<tr><th>Month</th><th>Days</th></tr>'; while ($result_row = $result->fetchRow()) { echo "<tr><td>"; echo $result_row[0] . '</td><td>'; echo $result_row[1] . '</td></tr>'; } echo ("</table>"); $connection->disconnect(); } ?> <html> <head> <title>Building a Form</title> </head> <body> <?php $search = htmlentities($_GET["search"]); $self = htmlentities($_SERVER['PHP_SELF']); if ($search != NULL) { echo "Search: <strong>$search</strong>."; query_db($search); } else { echo(' <form action="'.$self.'" method="get"> <label>Search!: <input type="text" name="search" /> </label> <input type="submit" value="Go" /> </form> '); } ?> </body> </html> Вот проблемное место в коде: PHP: $query = "SELECT month, days". "FROM monthnew". "WHERE month like '%$qstring%'"; // Построении строки запроса В моем случае при вводе в поле формы "August". Браузер выдает: Search: August. Connection was successful! The request failed: SELECT month, daysFROM monthnewWHERE month like '%August%' syntax error В чем я ошибаюсь?
Слитно выводит браузер, в самом же коде раздельно написано... PHP: $query = "SELECT month, days". "FROM monthnew". "WHERE month like '%$qstring%'"; // Построении строки запроса
у вас раздельно PHP: $query = "SELECT month, days ". "FROM monthnew". " WHERE month like '%$qstring%'"; // Построении строки запроса если так?