Как сделать поле поиска, которое ищет из двух разных таблиц с MySQL? - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть поле поиска на моем веб-сайте, где делается оператор SELECT, и оно должно возвращать данные из двух разных таблиц.

Я попытался объединить эти две таблицы, но результаты повторяются.

Код для search.php:

<?php include 'header.php'; include 'db.php'; ?>

<p>Results:</p>
<table>

<?php

    if (isset($_POST['button_search'])) {
        $search = mysqli_real_escape_string($conn, $_POST['search']);
        $sql = "
        SELECT * FROM tb_article , tb_series

        WHERE 
        title_article LIKE '%$search%' OR
        subtitle_article LIKE '%$search%' OR
        author_article LIKE '%$search%' OR
        content_article LIKE '%$search%' OR 

        title_series LIKE '%$search%' OR
        cast_series LIKE '%$search%' OR
        year_series LIKE '%$search%' OR
        description_series LIKE '%$search%' OR 
        ";
        $result = mysqli_query($conn, $sql);
        $queryResult = mysqli_num_rows($result);

        if ($queryResult > 0) {

            while ($line = mysqli_fetch_array($result)) {
        echo '<tr><td class="td_tit"><a class="index_link_title" href="example_article.php?id=' . $line["id_tb_article"] . '">'.$line["title_article"].'</a></td></tr>';
        echo '<tr><td class="td_subt"><a  class="index_link_subtitle" href="example_article.php?id=' . $line["id_tb_article"] . '">'.$line["subtitle_article"].'</a></td></tr>';

            while ($line = mysqli_fetch_array($result)) {
        echo '<tr><td class="td_tit"><a class="index_link_title" href="series.php?id=' . $line["id_tb_series"] . '">'.$line["title_series"].'</a></td></tr>';
        }

        }else{
            echo "No results";
        }

    }

?>

</table>

<?php include 'footer.php'; ?>

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019

https://www.w3schools.com/sql/sql_join_inner.asp

ex

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
0 голосов
/ 20 сентября 2019

Один способ разбит на два запроса и два результата:

$queryArticles = "
SELECT * FROM tb_article 
        WHERE 
        title_article LIKE '%$search%' OR
        subtitle_article LIKE '%$search%' OR
        author_article LIKE '%$search%' OR
        content_article LIKE '%$search%'";

while ($resultArticles) ...

$querySeries = "
SELECT * FROM tb_series
        WHERE 
        title_series LIKE '%$search%' OR
        cast_series LIKE '%$search%' OR
        year_series LIKE '%$search%' OR
        description_series LIKE '%$search%'
";

while ($resultSeries) ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...