- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Такая проблема, пытаюсь сделать живой поиск, нашел пример
function search_autocomplete(){
global $db;
$search = trim(mysqli_real_escape_string($db, $_GET['term']));
$query = "SELECT name FROM st_city WHERE Name LIKE '%{$search}%' LIMIT 10";
$res = mysqli_query($db, $query);
$result_search = array();
while($row = mysqli_fetch_assoc($res)){
$result_search[] = array('label' => $row['name']);
}
return $result_search;
}
if(!empty($_GET['term'])){
$search = search_autocomplete();
exit( json_encode($search) );
}
if(!empty($_GET['search'])){
echo "Поиск по запросу <b>{$_GET['search']}</b>...";
}
Но необходимо переделать его под PDO
@bold function search_autocomplet(){
global $pdo;
$search = trim($_GET['term']);
$query = $pdo->prepare("SELECT name FROM st_city WHERE name LIKE '%{$search}%' LIMIT 10");
$query->execute();
$searchres = $query->fetch(PDO::FETCH_ASSOC);
$result_search = [];
while($row = $searchres){
$result_search[] = array('label' => $row['name']);
}
return $result_search;
}
if(!empty($_GET['term'])){
$search = search_autocomplete();
exit( json_encode($search) );
}
if(!empty($_GET['search'])){
echo "Поиск по запросу <b>{$_GET['search']}</b>...";
}
Но чет не находит в моём примере нужных мне данных. Помогите, пожалуйста, третий день решаю проблему
но там надо еще вырезать или экранировать знаки процента в самом $search
Тут лучше наверное использовать просто CODE на не PHP
А то в PHP замены для '[' и ']' -> ***93
Но это видео вопрос в программистам форума
Да, где-то есть темы, почему тут такой косяк и почему его не будут исправлять %)
Сорри не заметил сразу ошибки.
Исходный код:
function search_autocomplete(){
global $db;
$search = trim(mysqli_real_escape_string($db, $_GET['term']));
$query = "SELECT name FROM st_city WHERE Name LIKE '%{$search}%' LIMIT 10";
$res = mysqli_query($db, $query);
$result_search = array();
while($row = mysqli_fetch_assoc($res)){
$result_search[] = array('label' => $row['name']);
}
return $result_search;
}
if(!empty($_GET['term'])){
$search = search_autocomplete();
exit( json_encode($search) );
}
if(!empty($_GET['search'])){
echo "Поиск по запросу <b>{$_GET['search']}</b>...";
}
Это то, во что пытаюсь преобразовать:
function search_autocomplet(){
global $pdo;
$search = trim($_GET['term']);
$query = $pdo->prepare("SELECT name FROM st_city WHERE name LIKE '%{$search}%' LIMIT 10");
$query->execute();
$searchres = $query->fetch(PDO::FETCH_ASSOC);
$result_search = [];
while($row = $searchres){
$result_search[] = array('label' => $row['name']);
}
return $result_search;
}
if(!empty($_GET['term'])){
$search = search_autocomplete();
exit( json_encode($search) );
}
if(!empty($_GET['search'])){
echo "Поиск по запросу <b>{$_GET['search']}</b>...";
}
http://php.net/manual/ru/pdostatement.fetchall.php вот этот метод надо использовать - он вернет несколько строк,а просто fetch - одну.
Ну и как бы напихают вам там инъекций, если код в таком виде оставите. Используйте плейсхолдеры, раз уж на pdo переписываете