gpt4 book ai didi

php - 获取某个主题中的帖子数量 PHP

转载 作者:行者123 更新时间:2023-11-29 09:18:50 24 4
gpt4 key购买 nike

如何显示论坛等主题的帖子数量。我用过这个...(多么菜鸟):

function numberofposts($n)
{
$sql = "SELECT * FROM posts
WHERE topic_id = '" . $n . "'";

$result = mysql_query($sql) or die(mysql_error());
$count = mysql_num_rows($result);

echo number_format($count);
}

列出主题的 while 循环:

<?php

$sql = "SELECT * FROM topics ORDER BY topic_id ASC LIMIT $start, $limit";
$result = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_array($result))
{
?>
<div class="topics">
<div class="topic-name">
<p><?php echo $row['topic_title']; ?></p>
</div>
<div class="topic-posts">
<p><?php echo numberofposts($row['topic_id']); ?></p>
</div>
</div>
<?php
}
?>

虽然这样做的方法很糟糕...我所需要的只是知道什么是最好的方法,不要只是向我指出一个网站,而是在这里这样做,因为我正在努力学习很多。好的? :D

谢谢。

编辑:

SQL:

帖子表:

CREATE TABLE `posts` (
`post_id` mediumint(8) NOT NULL AUTO_INCREMENT,
`topic_id` mediumint(8) NOT NULL,
`forum_id` mediumint(8) NOT NULL,
`user_id` mediumint(8) NOT NULL,
`post_time` varchar(100) NOT NULL,
`post_timestamp` mediumint(20) NOT NULL,
`post_ip` varchar(20) NOT NULL,
`post_reported` tinyint(1) NOT NULL,
`post_reportdesc` text NOT NULL,
PRIMARY KEY (`post_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Dumping data for table `posts`
--

INSERT INTO `posts` VALUES(1, 1, 0, 1, '15th Junenee', 0, '', 0, '');

主题表:

CREATE TABLE `topics` (
`topic_id` mediumint(8) NOT NULL AUTO_INCREMENT,
`section_name` varchar(25) NOT NULL,
`topic_title` varchar(120) NOT NULL,
`topic_description` char(120) NOT NULL,
`user_id` mediumint(8) NOT NULL,
`topic_time` varchar(100) NOT NULL,
`topic_views` varchar(1000) NOT NULL,
`topic_up` mediumint(11) NOT NULL,
`topic_down` mediumint(11) NOT NULL,
`topic_status` tinyint(1) NOT NULL,
PRIMARY KEY (`topic_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

这应该可以帮助您了解更多。

最佳答案

您可以使用:

"SELECT COUNT(topic_id) FROM posts WHERE topic_id = '?'"

那个?是一个占位符。如果你使用mysql,你应该使用mysql_real_escape_string:

$sql = "SELECT COUNT(topic_id)
WHERE topic_id = '" . mysql_real_escape_string($n) . "'";

如果您使用mysql_fetch_array,则$row[0]将是计数。您可以命名它,但这不是必需的。

更好的选择是某种准备好的语句,例如 PDOStatementmysqli_stmt 。这有助于防止 SQL 注入(inject)。

关于php - 获取某个主题中的帖子数量 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3048853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com