За последние 24 часа нас посетили 21368 программистов и 1338 роботов. Сейчас ищут 665 программистов ...

Поиск из базы данных

Тема в разделе "PHP и базы данных", создана пользователем Dimon2x, 15 апр 2017.

  1. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.202
    Симпатии:
    184
    Я сделал поиск, что бы выдавало все статьи, содержащую введённую букву или слово.

    Он работает, нормально ли получилось?

    PHP:
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3.  
    4. $pdo = new PDO('mysql:host=localhost; dbname=dz; charset=utf8', 'root', '');
    5.  
    6. $statement = $pdo->prepare('SELECT * FROM `books`');
    7. $statement->execute();
    8.  
    9. $books = $statement->fetchAll();
    10.  
    11. $formName = '';
    12.  
    13. if(isset($_GET['name'])){
    14.     $formName = $_GET['name'];
    15.    
    16.     $sth2 = $pdo->prepare('SELECT * FROM `books` WHERE `name` LIKE :search');
    17.     $sth2->execute([':search'=>'%'.$formName.'%%']);
    18.    
    19.     while($bookName = $sth2->fetch()){
    20.         if($bookName['name']){
    21.             echo $bookName['name'] . '<br>';
    22.         }
    23.         else{
    24.             echo 'Такой книги нету';
    25.         }
    26.     }
    27. }
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.764
    Симпатии:
    1.322
    Адрес:
    Лень
    error_reporting( E_ALL );
    ну как, нормально работают скрипты ? :D
     
  3. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Тут может что-то пойти не так, по этому через if всё нужно проверять, по всем методам есть документация и там есть раздел "Возвращаемые значения" и ты должен проверять на то, что если всё успешно отработало
     
    Dimon2x нравится это.
  4. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.202
    Симпатии:
    184
    Ошибок нету
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.764
    Симпатии:
    1.322
    Адрес:
    Лень
    На локалке пробуешь или на хостинге?
     
  6. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.202
    Симпатии:
    184
    На локалке.

    Я сделал проверку для prepare, почему если указать неверную таблицу, то не выводит сообщение Подключение не удалось?

    PHP:
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3.  
    4. $user = 'root';
    5. $pass = '';
    6.  
    7. $dsn = "mysql:host=localhost;dbname=dz;charset=utf8";
    8.  
    9. try {
    10.     $pdo = new PDO($dsn, $user, $pass);
    11.     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    12. } catch (PDOException $e) {
    13.     echo 'Подключение не удалось: ' . $e->getMessage();
    14.     die();
    15. }
    16. try{
    17.     $statement = $pdo->prepare('SELECT * FROM `boks`');
    18. }catch(PDOException $e){
    19.      echo 'Подключение не удалось: ' . $e->getMessage();
    20.      die();
    21. }