За последние 24 часа нас посетили 18189 программистов и 1573 робота. Сейчас ищут 1304 программиста ...

Запрос поиска по ссылке

Тема в разделе "PHP для новичков", создана пользователем ololo, 9 июн 2019.

  1. ololo

    ololo Новичок

    С нами с:
    9 июн 2019
    Сообщения:
    1
    Симпатии:
    0
    Привет, у меня есть такой скрипт поиска и такой вопрос:
    Как можно соорудить из этого ссылку на поиск определенного слова, например мне нужен поиск слова photo - я нажимаю на ссылку, отправляется запрос к бд и результатом выводятся статьи содержащие это слово. Впринципе тот же поиск только по ссылке и ограничен единственным вероятным запросом.
    Заранее спасибо, серьёзно!

    PHP:
    1.       if(isset($_POST['submit'])){
    2.       if(isset($_GET['go'])){
    3.       if(preg_match("/^[  a-zA-Z]+/", $_POST['name'])){
    4.       $name=$_POST['name'];
    5.       //connect  to the database
    6.       $db=mysql_connect  ("host", "lol",  "pp") or die ('I cannot connect to the database  because: ' . mysql_error());
    7.       //-select  the database to use
    8.       $mydb=mysql_select_db("lol");
    9.       //-query  the database table
    10.       $sql="SELECT  ID, title, description FROM blog WHERE title LIKE '%" . $name .  "%' OR description LIKE '%" . $name ."%'";
    11.       //-run  the query against the mysql query function
    12.       $result=mysql_query($sql);
    13.       //-create  while loop and loop through result set
    14.       while($row=mysql_fetch_array($result)){
    15.               $title  =$row['title'];
    16.               $description=$row['description'];
    17.               $ID=$row['ID'];
    18.       //-display the result of the array
    19.       echo "<ul>\n";
    20.       echo "<li>" . "<a  href='./?blog=$ID'>"   .$title . " " . $description .  "</a></li>\n";
    21.       echo "</ul>";
    22.       }
    23.       }
    24.       else{
    25.       echo  "<p>Please enter a search </p>";
    26.       }
    27.       }
    28.       }
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.788
    Симпатии:
    1.328
    Адрес:
    Лень
    переходи на php7
    Динозавров не поддерживаем
     
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.830
    Симпатии:
    651
    Поиск обычно по ссылкам и делается (как результат редиректа после POST). Сами придумайте способ кодирования/декодирования поискового запроса в адресе. Для англ. слова вполне логично сделать /search/photo или /search?q=photo.
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.576
    Симпатии:
    1.759
    @miketomlin, а зачем в поиске вообще POST?
     
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.830
    Симпатии:
    651
    @mkramer, много причин. Отфильтровывать лишнее в ключевой строке на предварительном этапе, в частности не запускать поиск при вводе ключей-пустышек, использовать свой способ кодирования ключей и т.п. в адресе, в частности использовать «более красивый» формат адреса (первый вариант из моего пред. поста), и т.д.
    --- Добавлено ---
    P.S. Конечно многое из перечисленного можно сделать и на клиенте. Но я сделал упор на классику.
     
  6. acho

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

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    А потом "а как мне скинуть на выдачу поиска ссылку друг\брату\свату\жене".
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.576
    Симпатии:
    1.759
    Всегда, слава Богу, удавалось отговорить заказчиков от "красивого" адреса в поиске
     
  8. acso

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

    С нами с:
    15 апр 2010
    Сообщения:
    150
    Симпатии:
    25
    Адрес:
    Одесса
    PHP:
    1. $_POST['name'] = "%';DELETE FROM USERS;select id from blog where title like '%";
    2. $name = $_POST['name'];
    3. $sql="SELECT  ID, title, description FROM blog WHERE title LIKE '%" . $name .  "%' OR description LIKE '%" . $name ."%'";
    :D
     
    TeslaFeo нравится это.