@sosis04ka
Веб-программист

Почему не работает вывод статей по категориям?

Создаю новостной сайт.
Есть главная страница где выводятся все новости и есть правая панель где выведены категорий хочу сделать так чтобы при нажатий на эти категорий выводились статьи только из этой категорий.
Таблица news: news_id,news_categoryid,title,text,news_img.
Таблица категорий category: category_id,category_name,position
Вот код правой панели:
<?php require_once 'config.php'; ?>
<aside class="col-xs-6 col-sm-3 right-bar">
        <?php 
             $cat = mysqli_query($connect_db,"SELECT * FROM `name`");
        ?>
        <?php 
                while($row = mysqli_fetch_assoc($cat)) {
        ?>
        <p><?php echo $row['name']; ?></p>
        <?php 
                }
        ?>
        <?php
                $category = mysqli_query($connect_db,"SELECT * FROM `category` ORDER BY `position`");
        ?>
        <?php while($row = mysqli_fetch_assoc($category)) { ?>
                <a href="article.php?id=<?php echo $row['category_id']; ?>"><?php echo $row['category_name']; ?></a><br>
        <?php 
                }
        ?>
        
        <div class="bt"></div>
</aside>

Код article.php:
<?php require_once 'include/config.php'; ?>
<?php require_once 'include/header.include.php'; ?>
<body>
<?php require_once 'include/nav.include.php'; ?>
<div class="container">
    <main class="col-xs-12 col-sm-9">
        <article>
            <section class="welcome">
            <?php 
                $welcome = mysqli_query($connect_db,"SELECT * FROM `welcome`");
            ?>
                <?php 
                while ($wel = mysqli_fetch_assoc($welcome)) 
                    { 
                ?>
                <h1><?php echo $wel['title']; ?></h1>
                <p><?php echo $wel['text']; ?></p>
                <?php
                }
                ?>                 
            </section>
            <?php 
                $news = mysqli_query($connect_db,"SELECT * FROM `news` WHERE `news`.`news_categoryid` = " . (int) $_GET['category_id']);
            ?>
            <?php 
                while($cat = mysqli_fetch_assoc($news)) {
                    ?>

                <section class="col-md-5 news news-margin">
                   <div class="sp">
                       <span class="descr"><a href="news.php?news_id=<?php echo $cat['news_id']; ?>">Далее</a></span>
                        <img src="img/<?php echo $cat['news_img']; ?>">
                   </div> 
                        <a href="news.php?news_id=<?php echo $cat['news_id']; ?>" class="text-h"><?php echo mb_substr($cat['title'], 0, 60,'utf-8'); ?></a>
                        <div class="bt"></div>
                        <p>
                            <?php echo mb_substr($cat['text'], 0, 150, 'utf-8') . '...'; ?>
                        </p>
                        <div class="bt"></div>
                    </section>
                   <?php
                }
            ?>
        </article>
    </main>
<?php require_once 'include/rightbar.include.php'; ?>
</div>
<?php require_once 'include/footer.include.php'; ?>
        <script type="text/javascript" src="js/jquery.min.js"></script>
        <script type="text/javascript" src="js/bootstrap.js"></script>
</body>
</html>

Как реализовать связь между таблицами?
  • Вопрос задан
  • 169 просмотров
Пригласить эксперта
Ответы на вопрос 1
Steein
@Steein
Программист
//1
$welcome = mysqli_query($connect_db,"SELECT * FROM `welcome`");
//to
$welcome = $mysqli->query("SELECT * FROM `welcome`");
foreach($welcome->fetch_array() as $value) { }


//Вы серьезно ???
$news = mysqli_query($connect_db,"SELECT * FROM `news` WHERE `news`.`news_categoryid` = " . (int) $_GET['category_id']);

//
$category_id = \filter_input(INPUT_GET,'category_id', \FILTER_SANITIZE_NUMBER_INT);

$result- = $mysqli->query("SELECT * FROM `news` WHERE `news_categoryid` = '{$category_id}'");
while($row = $result->fetch_array()) { }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы