За последние 24 часа нас посетили 20399 программистов и 1014 роботов. Сейчас ищет 381 программист ...

поиск в базе данных и вывод на сайте через php

Тема в разделе "Сделайте за меня", создана пользователем Af1k, 7 дек 2020.

  1. Af1k

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

    С нами с:
    20 окт 2010
    Сообщения:
    16
    Симпатии:
    0
    Прошу помочь написать правильно код вывода информации

    есть БД:
    upload_2020-12-7_19-5-19.png

    На странице search.php нужно сделать выдачу результатов из формы:

    Код (Text):
    1. <form name="search" method="post" action="search.php">
    2.     <input type="search" name="query" placeholder="Введите трек-номер">
    3.     <button type="submit">Найти</button>
    4. </form>
    Помогите составить файл search php так, что бы при поиске в строке только по номеру 100000000*
    выводило все 4 столбца информации.
    если пустое поле то ошибка, если менее 3 символов или более 120 то ошибка.
    если нет совпадения в БД то выдать что ничего не найдено.

    Есть код search.php но он в корни не правильный, помогите изменить код.

    Код (Text):
    1.  
    2. <?php
    3. define('DB_HOST', 'localhost');
    4. define('DB_USER', '*******');
    5. define('DB_PASS', '*******');
    6. define('DB_NAME', '*******');
    7.  
    8. if (!mysql_connect(DB_HOST, DB_USER, DB_PASS)) {
    9.     exit('Cannot connect to server');
    10. }
    11. if (!mysql_select_db(DB_NAME)) {
    12.     exit('Cannot select database');
    13. }
    14.  
    15. mysql_query('SET NAMES utf8');
    16.  
    17. function search ($query)
    18. {
    19.     $query = trim($query);
    20.     $query = mysql_real_escape_string($query);
    21.     $query = htmlspecialchars($query);
    22.  
    23.     if (!empty($query))
    24.     {
    25.         if (strlen($query) < 3) {
    26.             $text = '<p>Слишком короткий поисковый запрос.</p>';
    27.         } else if (strlen($query) > 128) {
    28.             $text = '<p>Слишком длинный поисковый запрос.</p>';
    29.         } else {
    30.             $q = "SELECT `page_id`, `title`, `desc`, `title_link`, `category`, `uniq_id`
    31.                   FROM `table_name` WHERE `text` LIKE '%$query%'
    32.                   OR `title` LIKE '%$query%' OR `meta_k` LIKE '%$query%'
    33.                   OR `meta_d` LIKE '%$query%'";
    34.  
    35.             $result = mysql_query($q);
    36.  
    37.             if (mysql_affected_rows() > 0) {
    38.                 $row = mysql_fetch_assoc($result);
    39.                 $num = mysql_num_rows($result);
    40.  
    41.                 $text = '<p>По запросу <b>'.$query.'</b> найдено совпадений: '.$num.'</p>';
    42.  
    43.                 do {
    44.                     // Делаем запрос, получающий ссылки на статьи
    45.                     $q1 = "SELECT `link` FROM `table_name` WHERE `uniq_id` = '$row[page_id]'";
    46.                     $result1 = mysql_query($q1);
    47.  
    48.                     if (mysql_affected_rows() > 0) {
    49.                         $row1 = mysql_fetch_assoc($result1);
    50.                     }
    51.  
    52.                     $text .= '<p><a> href="'.$row1['link'].'/'.$row['category'].'/'.$row['uniq_id'].'" title="'.$row['title_link'].'">'.$row['title'].'</a></p>
    53.                     <p>'.$row['desc'].'</p>';
    54.  
    55.                 } while ($row = mysql_fetch_assoc($result));
    56.             } else {
    57.                 $text = '<p>По вашему запросу ничего не найдено.</p>';
    58.             }
    59.         }
    60.     } else {
    61.         $text = '<p>Задан пустой поисковый запрос.</p>';
    62.     }
    63.  
    64.     return $text;
    65. }
    66.  
    67. if (!empty($_POST['query'])) {
    68.     $search_result = search ($_POST['query']);
    69.     echo $search_result;
    70. }
    71. ?>

    Спасибо за ответы!!!