gpt4 book ai didi

PHP MySQL - 从 select 语句中计算行数

转载 作者:行者123 更新时间:2023-11-30 22:33:40 25 4
gpt4 key购买 nike

我正在尝试创建一个讨论板,并试图显示每个论坛中的主题数量和帖子总数。我相信问题出在我的某个地方 WHERE条款,因为这在之前的问题上引起了我的问题。

我知道 rowCount() 不应该被依赖,并且在我的情况下无论如何都不起作用,主要是因为它不适用于 SELECT声明。

我调查了这两个 SELECT count(*)陈述和做$row = $stmt->fetchAll(); $numrows = count($row)但是,我没有让他们中的任何一个工作。

<?php
/* CATEGORIES */
/* SELECTS ALL OF THE CATEGORIES OF THE BOARD */

$query = "SELECT * FROM bkg_categories";

try {
$stmt = $db->prepare($query);
$result = $stmt->execute();
} catch(PDOException $e) {
$error[] = "An error has occured. Please try again later.";
}
$categories = $stmt->fetchAll();

/* FORUMS */
/* SELECT ALL OF THE FORUMS IN EACH CATEGORY FOR THE BOARD */
foreach($categories as $category) {
$catid = $category['category_id'];

$query = "SELECT * FROM bkg_forums WHERE category_id = :catid";
$query_params = array(':catid' => $catid);

try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
} catch(PDOException $e) {
$error[] = "An error has occured. Please try again later.";
}
$forums[$catid] = $stmt->fetchAll();

foreach($forums[$category['category_id']] as $forum) {
$query = "SELECT * FROM bkg_topics where forum_id = :forumid";
$query_params = array(':forumid' => $forum['forum_id']);

try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
} catch(PDOException $e) {
$error[] = "An error has occured. Please try again later.";
}
$rows3['forumid'] = $stmt->fetchAll();
$rowCount = count($rows3['forumid']);
echo $rowCount;
var_dump($rowCount);
}



}
/* END QUERIES */
?>

这些是我正在使用的所有选择查询。在我的 PHP 选择查询的最后一个 foreach 循环中,您可以看到我在玩什么,var_dump()echo工作,当它不在任何 foreach 循环内时,除了初始父循环之外,但是一旦我将它向下移动到我的表中,它似乎就不起作用了。

<?php foreach($categories as $category): ?>
<table class="forumtable">
<tr>
<td colspan="2"><strong><?php echo $category['category_name']; ?></strong></td>
<td><strong>Lastest Post</strong></td>
<td><strong>Topics</strong></td>
<td><strong>Posts</strong></td>
</tr>
<?php foreach($forums[$category['category_id']] as $forum): ?>
<tr>
<td width="5%" class="forum"></td>
<td class="forum no-padding">
<a href="viewforum.php?f=<?php echo $forum['forum_id']; ?>"><?php echo $forum['forum_name']; ?></a>
<div class="description"><?php echo $forum['forum_desc']; ?></div>
</td>
<td width="15%" class="forum content">
<?php if($forum['forum_last_post_topic_id'] == 0): ?>
<div>No posts...</div>
<?php else: ?>
<?php if($forum['forum_last_post_id'] == 0): ?>
<a href="viewtopic.php?f=<?php echo $forum['forum_id']; ?>&t=<?php echo $forum['forum_last_post_topic_id']; ?>"><?php echo substr($forum['forum_last_post_title'], 0, 10); ?></a>
<?php else: ?>
<a href="viewtopic.php?f=<?php echo $forum['forum_id']; ?>&t=<?php echo $forum['forum_last_post_topic_id']; ?>#<?php echo $forum['forum_last_post_id']; ?>"><?php echo substr($forum['forum_last_post_title'], 0, 10); ?></a>
<?php endif; ?>
<?php endif; ?>
</td>
<td width="5%" class="forum content">
<?php
echo $forum['forum_topics']; ?></td>
<td width="5%" class="forum content"><?php
echo $forum['forum_posts']; ?></td>
</tr>
<?php endforeach; ?>
</table>
<?php endforeach; ?>

最佳答案

我终于能够让 select(*) 工作。

$db->query('SELECT COUNT(*) FROM users')->fetchColumn(); 是我用来获取工作所需内容的方法。

关于PHP MySQL - 从 select 语句中计算行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33162311/

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