За последние 24 часа нас посетили 18054 программиста и 1651 робот. Сейчас ищут 1726 программистов ...

Не работает поиск!

Тема в разделе "PHP и базы данных", создана пользователем demetrius12, 14 фев 2018.

  1. demetrius12

    demetrius12 Новичок

    С нами с:
    10 фев 2018
    Сообщения:
    3
    Симпатии:
    0
    Добрый день форумчане. Никак не могу разобраться где ошибка. База данных web таблица courses
    в ней 4 поля id title length description. Нужно реализовать поиск в базе данных через форму.
    <?php
    try{$conn = new PDO ("mysql:host=localhost;dbname=web", 'root', '');

    if(isset($_POST['search'])){
    $valueToSearch = $_POST['valueToSearch'];
    $sql = "SELECT * FROM `courses` WHERE CONCAT('id', title','length', 'description') LIKE '%".$valueToSearch."%'";
    } else{$sql = "SELECT * FROM courses";
    $result = $conn->query($sql);
    }

    ?>
    <!doctype html>
    <html lang="ru">
    <head>
    <meta charset="UTF-8">
    </head>
    <body>
    <form action="select_oop1.php" method="post">
    <input type="text" name="valueToSearch" placeholder="Value To Search"><br><br>
    <input type="submit" name="search" value="Filter"><br><br>

    <table>
    <tr>
    <th>Id</th>
    <th>Название</th>
    <th>Длительность</th>
    <th>Описание</th>
    </tr>
    <?php
    while ($row = $result->fetch(PDO::FETCH_ASSOC)){
    ?>
    <tr>
    <td><?php echo $row['id'];?></td>
    <td><?php echo $row['title'];?></td>
    <td><?php echo $row['length'];?></td>
    <td><?php echo $row['description'];?></td>
    </tr>
    <?}?>
    </table>
    </form>
    </body>
    </html>
    <?php

    }
    catch (PDOException $e) {
    echo "error";
    }
    $conn = null;
    ?>
    --- Добавлено ---
    Без поиска все норм. При поиске выдает Uncaught Error: Call to a member function fetch() on null in C:\OpenServer\domains\localhost\forum.php\select_oop1.php:53 Stack trace: #0 {main} thrown in C:\OpenServer\domains\localhost\forum.php\select_oop1.php on line 53
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.797
    Симпатии:
    1.331
    Адрес:
    Лень
    ты забыл в первом условии query и использовать хотябы блокнот notepad++ с синтаксической подсветкой, стиль solarized
     
    #2 MouseZver, 14 фев 2018
    Последнее редактирование: 14 фев 2018
  3. demetrius12

    demetrius12 Новичок

    С нами с:
    10 фев 2018
    Сообщения:
    3
    Симпатии:
    0
    Спасибо за ответ, но дело не в этом query. Его применение ничего не изменило ошибка та же. Просто целый день потратил на этот поиск уже глаз замылился. Sublime юзаю.
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.797
    Симпатии:
    1.331
    Адрес:
    Лень
    ну ну
     
  5. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Замени внутри конката апострафы на грависы: сейчас у тебя склеиваются константные строки, а будут склеиваться значения полей кортежа.
     
  6. demetrius12

    demetrius12 Новичок

    С нами с:
    10 фев 2018
    Сообщения:
    3
    Симпатии:
    0
    Если быть точным, то да это была ошибка, но включение в первое условие query не изменило ситуацию.
    --- Добавлено ---
    Все спасибо за помощь все правильно дело было в грависах