Здравствуйте господа! Я конечно понимаю что решение есть, но я его вот уже второй день самостоятельно найти не могу, так ВОТ: (Script) есть форма, на ней input type="text" после ввода текста, и нажатии кнопки (type="submit") Используется метод POST. Открывается php страница, на которой я хочу видеть строки из базы данных в которых и встречается данная глобальная переменная. В общем-то поиск. Облазил весь интернет - ничего не нашел (. Помогите кодом. К базе я подключаюсь в этом файле, с этим проблем нет - самая главная проблема в переменной POST и соответственно sql запрос на поиск (select * from `t1` where `string1` = '$_POST('name')') - некорректен ?????? У МЕНЯ ОГРОМНАЯ ПРОБЛЕМА С СИНТАКСИСОМ.
ну так почитай статьи посмотри как граматно SQL оформить. У тебя вообще запись левая. Для начала потренируйся и выведи $_POST('name'). точнее правильно напиши PHP: echo $_POST['name']; если в нем будет результат после отправки смело юзай запрос (малоли мб у тебя и отправка неправильная). PHP: mysql_query("SELECT * FROM t1 WHERE string1='".$_POST['name']."'"); p.s учись фильтровать данные http://php.net/manual/ru/function.mysql ... string.html Получаем PHP: mysql_query("SELECT * FROM t1 WHERE string1='".mysql_real_escape_string($_POST['name'])."'"); эта хрень будет экранировать символы... хотя наверное тебе рано это знать
А как Ваше предложение mysql_query("SELECT * FROM `t1` WHERE `string1`='".$_POST['name']."'"); Вывести на экран? А то я знаком только с: $sql = "SELECT * FROM `t1` where `string1` = '".$_POST['name']."'"); или это одно и тоже мне просто переменная нужна чтобы feetch и вывести на экран. Или я вообще неправильно все понимаю?
HTML: <!--Форма для отправки данных--> <form method="POST" action=""> <input type="text" name="test" value="test)"> <input type="submit" value="OK"> <form> PHP: <?php if(isset($_POST['test'])) { // Если отправлена форма выполним следующее действие mysql_connect('localhost', 'логин', 'пароль') or die('Не могу соединиться с БД'); // Соединяемся с бд mysql_select_db('имя_бд') or die('Не могу выбрать БД'); // Выбираем нужную БД $result = mysql_query("SELECT * FROM tablename WHERE text='".$_POST['test']."'"); // Запрос к таблице нужной (сам составь) $result = mysql_fetch_row($result); // Вытаскиваем одно значение. Если их много смотри в сторону while и mysql_fetch_assoc($result) echo $result['заголовок столбца']; } else { echo "<p>Форма еще не отправлена :)</p>"; } ?> Держи пример, я тебе все описал. p.s могут быть ошибки не проверял) Поставь себе задачу простую и выполняй её разбив на узкие задачи) отправить, получить -> проверить, вывести. Гугл рулит все тебе найдет. А вообще не рекомендую сейчас сразу с БД начинать. Побалуйся неделю с переменными и функциями встроенными.
да БД это круть, просто очень хочется побыстрее свои проекты реализовать : производство + результаты ->Interbase ->MySql->php (вот этот) -> Web интерфейс <- Пользователь со своим запросом по например ФИО.
Уважаемый Invision не подскажите еще разок, что я делаю неправильно ? Таблица con В таблице ти столбца s, n, e. Первая и единственная запись - это строка sum1, sum2, sum3 Я прописал скрипт PHP: <!--Форма для отправки данных--> <form method="POST" action=""> <input type="text" name="test" value="test)"> <input type="submit" value="OK"> <form> и еще в другой файл PHP: <?php if(isset($_POST['test'])) { // Если отправлена форма выполним следующее действие mysql_connect('localhost', 'логин', 'пароль' - я их тоже прописал) or die('Не могу соединиться с БД'); // Соединяемся с бд mysql_select_db('имя_бд') or die('Не могу выбрать БД'); // Выбираем нужную БД $result = mysql_query("SELECT * FROM con WHERE s='".$_POST['test']."'"); // Запрос к таблице нужной (сам составь) $result = mysql_fetch_row($result); // Вытаскиваем одно значение. Если их много смотри в сторону while и mysql_fetch_assoc($result) echo $result['s']; } else { echo "<p>Форма еще не отправлена :)</p>"; } ?> Прописывая в текстовое поле sum1 и нажимая на кнопку, открывается php - ник, только ПУСТОЙ. Ошибок никаких не пишет, но и не выводит тоже ничего ?????
Вообщем ребят, кому интересно - решение проблемы : <?php // Константы для подключения к СУБД define("HOST","..."); define("USER","..."); define("PASS","..."); define("DB","..."); // Подключение к СУБД $link = mysql_connect(HOST,USER,PASS) or die (mysql_error()); // Выбираем базу данных mysql_select_db(DB, $link); //Устанавливаем кодировку UTF8 mysql_query ("SET NAMES utf8"); mysql_query ("set character_set_client='utf8'"); mysql_query ("set character_set_results='utf8'"); mysql_query ("set collation_connection='utf8_general_ci'"); // Формируем строку для запроса к нашей базе данных // Не забывайте обрамлять имена таблиц и полей обратными кавычками `TABLE` // Скармливаем наш запрос MySQL $result = mysql_query("SELECT * FROM con WHERE s='".$_POST['test']."'"); // Запрос к таблице нужной (сам составь) /* Обратите внимание на конструкцию or die(mysql_error() ."<br/>". $sql) она Вам поможет в случае ошибки в Вашем SQL запросле или отсутствия соединения с Mysql Выводим данные из таблицы в цикле WHILE(), не вкоем случае не используйте DO WHILE() эта конструкция предназначена совсем для других действий */ // Рисуем табличку $table = "<table border=3 width=30% align=center>\n"; while ($row = mysql_fetch_assoc($result)) { /* Прошу обратить внимание на функцию MYSQL_FETCH_ASSOC() Выбрана она не случайно, данная функция возвратит ассоциативный массив с которым будем работать. Многие делают ошибку в плане оптимизации и использую функцию MYSQL_FETCH_ARRAY() данная функция вернет два массива, один ассоциативный другой индексный тем самым мы увеличим потрябляемую память скриптом. */ $table .= "<tr>\n"; $table .= "<td>".$row['sum1']."</td>\n"; $table .= "<td>".$row['sum2']."</td>\n"; $table .= "<td>".$row['sum3']."</td>\n"; $table .= "</tr>\n"; } $table .= "</table>\n"; // Выводим заполненую таблицу на экран echo $table; ?> Все получилось, да ещё и с цыклом !!!!!!! Круть ваще....