За последние 24 часа нас посетили 86258 программистов и 7045 роботов. Сейчас ищут 2167 программистов ...

Помогите с кодом php

Тема в разделе "PHP для новичков", создана пользователем Gams, 19 мар 2018.

  1. Gams

    Gams Новичок

    С нами с:
    19 мар 2018
    Сообщения:
    2
    Симпатии:
    0
    Такая проблема, пытаюсь сделать живой поиск, нашел пример
    PHP:
    1.  function search_autocomplete(){
    2.     global $db;
    3.     $search = trim(mysqli_real_escape_string($db, $_GET***91;'term'***93;));
    4.     $query = "SELECT name FROM st_city WHERE Name LIKE '%{$search}%' LIMIT 10";
    5.     $res = mysqli_query($db, $query);
    6.     $result_search = array();
    7.     while($row = mysqli_fetch_assoc($res)){
    8.         $result_search***91;***93; = array('label' => $row***91;'name'***93;);
    9.     }
    10.     return $result_search;
    11. }
    12.  
    13. if(!empty($_GET***91;'term'***93;)){
    14.     $search = search_autocomplete();
    15.     exit( json_encode($search) );
    16. }
    17.  
    18. if(!empty($_GET***91;'search'***93;)){
    19.     echo "Поиск по запросу <b>{$_GET***91;'search'***93;}</b>...";
    20. }
    21.  
    22. Но необходимо переделать его под PDO
    23. @bold function search_autocomplet(){
    24.     global $pdo;
    25.     $search = trim($_GET***91;'term'***93;);
    26.     $query = $pdo->prepare("SELECT name FROM st_city WHERE name LIKE '%{$search}%' LIMIT 10");
    27.     $query->execute();
    28.     $searchres = $query->fetch(PDO::FETCH_ASSOC);
    29.     $result_search = ***91;***93;;
    30.     while($row = $searchres){
    31.         $result_search***91;***93; = array('label' => $row***91;'name'***93;);
    32.     }
    33.     return $result_search;
    34. }
    35.  
    36. if(!empty($_GET***91;'term'***93;)){
    37.     $search = search_autocomplete();
    38.     exit( json_encode($search) );
    39. }
    40.  
    41. if(!empty($_GET***91;'search'***93;)){
    42.     echo "Поиск по запросу <b>{$_GET***91;'search'***93;}</b>...";
    43. }
    Но чет не находит в моём примере нужных мне данных. Помогите, пожалуйста, третий день решаю проблему
     
  2. Алекс8

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

    С нами с:
    18 май 2017
    Сообщения:
    1.724
    Симпатии:
    358
    это какая то опечатка?
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.841
    Симпатии:
    1.338
    Адрес:
    Лень
    PREPARE o_O
    и сам строковой запрос :confused:
    норм че..
    --- Добавлено ---
    нет, это шифр Эйнштейна
     
  4. Gams

    Gams Новичок

    С нами с:
    19 мар 2018
    Сообщения:
    2
    Симпатии:
    0
    Сорри не заметил сразу, это не опечатка и не шифр Энштейна, а видимо какая-то ошибка движка форума при вставке кода php.
    Это исходный код PHP:
    Код (Text):
    1. function search_autocomplete(){
    2.     global $db;
    3.     $search = trim(mysqli_real_escape_string($db, $_GET['term']));
    4.     $query = "SELECT name FROM st_city WHERE Name LIKE '%{$search}%' LIMIT 10";
    5.     $res = mysqli_query($db, $query);
    6.     $result_search = array();
    7.     while($row = mysqli_fetch_assoc($res)){
    8.         $result_search[] = array('label' => $row['name']);
    9.     }
    10.     return $result_search;
    11. }
    12.  
    13. if(!empty($_GET['term'])){
    14.     $search = search_autocomplete();
    15.     exit( json_encode($search) );
    16. }
    17.  
    18. if(!empty($_GET['search'])){
    19.     echo "Поиск по запросу <b>{$_GET['search']}</b>...";
    20. }
    Это то, во что пробую преобразовать:
    Код (Text):
    1. function search_autocomplet(){
    2.     global $pdo;
    3.     $search = trim($_GET['term']);
    4.     $query = $pdo->prepare("SELECT name FROM st_city WHERE name LIKE '%{$search}%' LIMIT 10");
    5.     $query->execute();
    6.     $searchres = $query->fetch(PDO::FETCH_ASSOC);
    7.     $result_search = [];
    8.     while($row = $searchres){
    9.         $result_search[] = array('label' => $row['name']);
    10.     }
    11.     return $result_search;
    12. }
    13.  
    14. if(!empty($_GET['term'])){
    15.     $search = search_autocomplete();
    16.     exit( json_encode($search) );
    17. }
    18.  
    19. if(!empty($_GET['search'])){
    20.     echo "Поиск по запросу <b>{$_GET['search']}</b>...";
    21. }