[英]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模型中,帖子可以具有多個類別。
接下來,我要確定用戶界面的復雜程度。 本質上,天空是極限,但請緊記您的受眾。 例如,您可以只允許選擇一個類別,也可以允許選擇多個類別。 如果您允許多個:那么您是否希望條目必須包含所有類別(“和”邏輯)或允許具有任何類別的任何帖子(“或”邏輯),那么許多選擇還取決於您有多少個條目。
布置好之后,實現起來就容易得多:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.