簡體   English   中英

如何在PHP博客(非wordpress)上按類別過濾帖子?

[英]How can I filter posts by category on a PHP blog (non-wordpress)?

我正在創建一個項目,在其中創建了一個系統,該系統允許用戶創建和發布博客文章。 我希望能夠有一個下拉功能,該功能將按標記有標簽的特定類別過濾和顯示帖子。 我將如何去做?

這不是WordPress網站,我自己所做的任何研究都主要是針對WordPress網站的結果。

如果有人可以幫助我或至少指出我的正確方向,那將是很好的。 我對使用PHP還是很陌生,所以我會盡一切可能的幫助。

這是顯示帖子的index.php部分:

<div class="container">
        <div class="row">
        <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12" id="centertext">
            <h1>Posts</h1>

            <?php
            while ($query->fetch()):
        $lastspace = strrpos($description, '');
        ?>
        <!-- THIS IS THE STRUCTURE FOR EACH POST /-->
        <article>
            <div class="preview">
                <div class="ptop">
                    <?php echo "<img src='admin/images/".$image."' width='100%' height='100%' >";?>
          <div class="basicinfo">
            <h2><?php echo $title?></h2>
            <?php echo $category?>
          </div>
                </div>
                <div class="pbottom">
          <p><?php echo substr($description, $lastspace).'...<br><br><a href="post.php?id='.$post_id.'">VIEW POST</a>'?></p>
        </div>
            </div>
        </article>
    <?php endwhile?> 

        </div>          
        </div>
    </div>

這是文件頂部唯一的其他PHP:

<?php
include('includes/db_connect.php');

$query = $db->prepare("SELECT post_id, title, image, LEFT(description, 300) AS description, category FROM post INNER JOIN categories ON categories.category_id=post.category_id order by post_id desc limit $start, $per_page");
$query->execute();
$query->bind_result($post_id, $title, $image, $description, $category);

?>

以下是我數據庫中的帖子和類別表:

POST

CREATE TABLE `post` (
  `post_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `title` varchar(255) NOT NULL,
  `category_id` int(11) NOT NULL,
  `description` text NOT NULL,
  `posted` datetime NOT NULL,
  `photo_id` int(11) DEFAULT NULL,
  `image` varchar(300) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

類別

CREATE TABLE `categories` (
  `category_id` int(11) NOT NULL,
  `category` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

單程:

在頁面上,您需要具有不同類別的<select> 當他們選擇一個時,他們將被重定向到yoursite.com/index.php?category=xyz ),其中xyz是他們選擇的類別。

在您的PHP查詢中,您必須添加: WHERE category='$_GET["category"]' (為安全起見,請務必使用mysql_real_escape_string()或PDO清除此值)。

首先,我將確定數據庫模型。 您可以構建n對n模型或1對n模型。 在1-to-n模型中,任何帖子只能具有一個類別,在n-n-n模型中,帖子可以具有多個類別。

接下來,我要確定用戶界面的復雜程度。 本質上,天空是極限,但請緊記您的受眾。 例如,您可以只允許選擇一個類別,也可以允許選擇多個類別。 如果您允許多個:那么您是否希望條目必須包含所有類別(“和”邏輯)或允許具有任何類別的任何帖子(“或”邏輯),那么許多選擇還取決於您有多少個條目。

布置好之后,實現起來就容易得多:

  • 用戶界面確定表單的外觀
  • 邏輯和數據庫模型確定您需要的sql查詢
  • 然后只顯示您從數據庫中獲得的條目...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM