Страница поиска SQL-запросов

Вопрос или проблема

Я пытаюсь создать веб-страницу на WordPress, которая имеет текстовое поле для ввода и кнопку. Что я хочу сделать, так это взять текст из текстового поля и использовать его в качестве параметра для поиска в таблице, которую я добавил в базу данных сайта, и вывести результаты на экран. Я пытался использовать PHP, но безуспешно. Как лучше это сделать?
Вот код

Поиск в базе данных фильмов <input id="input" name="input" type="text" /> [php] global $wpdb; echo '<button type="button" onclick="myFunction()">Поиск</button>'; $text = sanitize_text_field($_POST['input']); echo $text; $wpdb->query('USE vcuw2938212664'); function myFunction(){ $txt = sanitize_text_field($_POST['input']); echo 'текст - "$txt; $query = 'SELECT * FROM documentaries WHERE English_Title = \'%Li%\';'; echo $query; $results = $wpdb->get_results($query); if ($results != Null){ echo "{$results}"; } else { echo 'результатов нет'; } } [/php] 

Вы можете использовать WP_Query(); для запроса результатов.

У него есть аргумент 's' => $search_query,

Создайте ввод, получите значение ввода, сохраните его в $search_query, затем создайте запрос,

$query = new WP_Query( array( 'post_type' => 'post', 's' => $search_query ) );
if ( $query->have_posts() ) : 
     while ( $query->have_posts() ) : $query->the_post();

     // сделайте что-нибудь...

     endwhile;
     wp_reset_postdata();
endif;

Ответ или решение

Создание страницы поиска с помощью SQL-запросов на платформе WordPress может быть непростой задачей, особенно если вы только начинаете разбираться в PHP и взаимодействии с базой данных. В вашем случае вы хотите реализовать функциональность поиска по таблице базы данных и вывести результаты на экран. Давайте рассмотрим, как можно это сделать эффективно и безопасно.

1. Основы PHP и WordPress

Для начала, важно знать, что WordPress предлагает встроенные функции для работы с базой данных через объект $wpdb. Это помогает избежать SQL-инъекций и упрощает синтаксис работы с базой данных.

2. Создание формы поиска

Вам потребуется создать HTML-форму, которая позволит пользователю вводить текст для поиска:

<form method="post">
    <label for="input">Поиск по фильму:</label>
    <input id="input" name="input" type="text" />
    <button type="submit">Поиск</button>
</form>

3. Обработка данных ввода

После того, как пользователь введет запрос и нажмет кнопку, данные будут отправлены с помощью метода POST. Вы можете обработать ввод следующим образом:

<?php
global $wpdb;

if ($_SERVER["REQUEST_METHOD"] == "POST" && !empty($_POST['input'])) {
    // Сначала очищаем ввод пользователя для безопасности
    $text = sanitize_text_field($_POST['input']);

    // Создаем SQL-запрос, используя подвязку
    $query = $wpdb->prepare("SELECT * FROM documentaries WHERE English_Title LIKE %s", '%' . $wpdb->esc_like($text) . '%');

    // Выполняем запрос
    $results = $wpdb->get_results($query);

    // Проверяем и выводим результаты
    if ($results) {
        foreach ($results as $result) {
            echo "<div>{$result->English_Title}</div>";
        }
    } else {
        echo 'Результатов не найдено.';
    }
}
?>

4. Запросы с помощью WP_Query

Альтернативный подход для работы с записями в WordPress — это использование класса WP_Query. Однако данный класс больше используется для работы с постами и страницами. Если вы нацелены на конкретные таблицы, проще использовать $wpdb.

5. SEO-оптимизация

Для оптимизации вашего контента на странице поиска следуйте нескольким рекомендациям:

  • Используйте метатеги для описания страницы.
  • Разработайте URL-адреса, которые содержат ключевые слова, например yourwebsite.com/search?query=yoursearchterm.
  • Добавьте заголовки и подзаголовки на странице с целью улучшения индексации.

Заключение

Создание страницы поиска с использованием PHP и SQL в WordPress — это мощный инструмент для получения данных из базы. Использование функции sanitize_text_field() для защиты от XSS атак и $wpdb->prepare() для предотвращения SQL-инъекций делает вашу реализацию более надежной. Надеюсь, предложенные шаги помогут вам создать нужную функциональность и улучшить взаимодействие пользователей с вашим сайтом.

Оцените материал
Добавить комментарий

Капча загружается...