За последние 24 часа нас посетили 18447 программистов и 1604 робота. Сейчас ищут 995 программистов ...

Вывод результата

Тема в разделе "PHP и базы данных", создана пользователем pavel24071988, 20 июн 2011.

  1. pavel24071988

    pavel24071988 Активный пользователь

    С нами с:
    7 окт 2010
    Сообщения:
    7
    Симпатии:
    0
    Здравствуйте господа!
    Я конечно понимаю что решение есть, но я его вот уже второй день самостоятельно найти не могу, так ВОТ:

    (Script) есть форма, на ней input type="text" после ввода текста, и нажатии кнопки (type="submit") Используется метод POST. Открывается php страница, на которой я хочу видеть строки из базы данных в которых и встречается данная глобальная переменная. В общем-то поиск. Облазил весь интернет - ничего не нашел (. Помогите кодом. К базе я подключаюсь в этом файле, с этим проблем нет - самая главная проблема в переменной POST и соответственно sql запрос на поиск (select * from `t1` where `string1` = '$_POST('name')') - некорректен ??????

    У МЕНЯ ОГРОМНАЯ ПРОБЛЕМА С СИНТАКСИСОМ.
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    ну так почитай статьи посмотри как граматно SQL оформить. У тебя вообще запись левая.
    Для начала потренируйся и выведи $_POST('name'). точнее правильно напиши
    PHP:
    1. echo $_POST['name'];
    если в нем будет результат после отправки смело юзай запрос (малоли мб у тебя и отправка неправильная).
    PHP:
    1. mysql_query("SELECT * FROM t1 WHERE string1='".$_POST['name']."'");
    p.s учись фильтровать данные
    http://php.net/manual/ru/function.mysql ... string.html

    Получаем

    PHP:
    1. mysql_query("SELECT * FROM t1 WHERE string1='".mysql_real_escape_string($_POST['name'])."'");
    эта хрень будет экранировать символы... хотя наверное тебе рано это знать
     
  3. pavel24071988

    pavel24071988 Активный пользователь

    С нами с:
    7 окт 2010
    Сообщения:
    7
    Симпатии:
    0
    Золотой ты человек! Это то что я искал - побежал пробывать...
     
  4. pavel24071988

    pavel24071988 Активный пользователь

    С нами с:
    7 окт 2010
    Сообщения:
    7
    Симпатии:
    0
    А как Ваше предложение
    mysql_query("SELECT * FROM `t1` WHERE `string1`='".$_POST['name']."'");

    Вывести на экран?

    А то я знаком только с: $sql = "SELECT * FROM `t1` where `string1` = '".$_POST['name']."'"); или это одно и тоже мне просто переменная нужна чтобы feetch и вывести на экран.

    Или я вообще неправильно все понимаю?
     
  5. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    HTML:
    1. <!--Форма для отправки данных-->
    2. <form method="POST" action="">
    3. <input type="text" name="test" value="test)">
    4. <input type="submit" value="OK">
    PHP:
    1.     <?php
    2. if(isset($_POST['test'])) { // Если отправлена форма выполним следующее действие
    3.     mysql_connect('localhost', 'логин', 'пароль') or die('Не могу соединиться с БД'); // Соединяемся с бд
    4.     mysql_select_db('имя_бд') or die('Не могу выбрать БД'); // Выбираем нужную БД
    5.     $result = mysql_query("SELECT * FROM tablename WHERE text='".$_POST['test']."'"); // Запрос к таблице нужной (сам составь)
    6.     $result = mysql_fetch_row($result); // Вытаскиваем одно значение. Если их много смотри в сторону while и mysql_fetch_assoc($result)
    7.     echo $result['заголовок столбца'];
    8. } else {
    9.     echo "<p>Форма еще не отправлена :)</p>";
    10. }
    11. ?>
    Держи пример, я тебе все описал. p.s могут быть ошибки не проверял)

    Поставь себе задачу простую и выполняй её разбив на узкие задачи) отправить, получить -> проверить, вывести. Гугл рулит все тебе найдет. А вообще не рекомендую сейчас сразу с БД начинать. Побалуйся неделю с переменными и функциями встроенными.
     
  6. pavel24071988

    pavel24071988 Активный пользователь

    С нами с:
    7 окт 2010
    Сообщения:
    7
    Симпатии:
    0
    да БД это круть, просто очень хочется побыстрее свои проекты реализовать : производство + результаты ->Interbase ->MySql->php (вот этот) -> Web интерфейс <- Пользователь со своим запросом по например ФИО.
     
  7. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    бд это не круть)
     
  8. pavel24071988

    pavel24071988 Активный пользователь

    С нами с:
    7 окт 2010
    Сообщения:
    7
    Симпатии:
    0
    Уважаемый Invision не подскажите еще разок, что я делаю неправильно ?
    Таблица con
    В таблице ти столбца s, n, e.
    Первая и единственная запись - это строка sum1, sum2, sum3

    Я прописал скрипт
    PHP:
    1.  
    2. <!--Форма для отправки данных-->
    3.  <form method="POST" action="">
    4.  <input type="text" name="test" value="test)">
    5.  <input type="submit" value="OK">
    6.  <form>
    7.  
    и еще в другой файл
    PHP:
    1.  
    2.  <?php
    3.  if(isset($_POST['test'])) { // Если отправлена форма выполним следующее действие
    4.      mysql_connect('localhost', 'логин', 'пароль' - я их тоже прописал) or die('Не могу соединиться с БД'); // Соединяемся с бд
    5.      mysql_select_db('имя_бд') or die('Не могу выбрать БД'); // Выбираем нужную БД
    6.      $result = mysql_query("SELECT * FROM con WHERE s='".$_POST['test']."'"); // Запрос к таблице нужной (сам составь)
    7.      $result = mysql_fetch_row($result); // Вытаскиваем одно значение. Если их много смотри в сторону while и mysql_fetch_assoc($result)
    8.      echo $result['s'];
    9.  } else {
    10.      echo "<p>Форма еще не отправлена :)</p>";
    11.  }
    12.  ?>
    Прописывая в текстовое поле sum1 и нажимая на кнопку, открывается php - ник, только ПУСТОЙ. Ошибок никаких не пишет, но и не выводит тоже ничего ?????
     
  9. pavel24071988

    pavel24071988 Активный пользователь

    С нами с:
    7 окт 2010
    Сообщения:
    7
    Симпатии:
    0
    Вообщем ребят, кому интересно - решение проблемы :
    <?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;



    ?>

    Все получилось, да ещё и с цыклом !!!!!!! Круть ваще....
     
  10. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    :D поздравляю
     
  11. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    pavel24071988
    респект :)