首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql根据以前的mysql res从表中获取结果

问Mysql根据以前的mysql res从表中获取结果
EN

Stack Overflow用户
提问于 2012-07-22 23:52:32
回答 2查看 169关注 0票数 0

我试图使一个页面,显示数据库中的文章,但它是按类别组织的。

类别存储在表categories中,id和类别作为其字段/文章存储在表articles中,其中包含关于文章的各种信息的不同字段。

我拥有的代码如下:

代码语言:javascript
复制
<?php

$sql = "SELECT * FROM `categories`";
$query = mysql_query($sql) or die("Could not get CATEGORIES ".mysql_error());

while($category = mysql_fetch_array($query)){

$cat = $category['category'];

$sql = "SELECT * FROM `articles` WHERE `category` = '$cat'";
$query = mysql_query($sql) or die(mysql_error());
$articles = mysql_fetch_array($query);

$size = count($articles);

echo $size;

}   

?>

我期望的结果是每个类别的列表,然后在每个类别下,具有该类别的文章数量。

如果能得到一些帮助,我们将不胜感激。

谢谢:D

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-23 00:07:17

试试这个..。也许这就是你要找的。我们也可以使用单个mysql查询找到相同的结果。

代码语言:javascript
复制
$sql = "SELECT * FROM `categories`";
$query = mysql_query($sql) or die("Could not get CATEGORIES ".mysql_error());

$result = array();
while($category = mysql_fetch_array($query)){

$cat = $category['category'];

$sql = "SELECT count(*) as numberOfArticles FROM `articles` WHERE `category` = '$cat'";
$query2 = mysql_query($sql) or die(mysql_error());

$articles = mysql_fetch_array($query2);
$category['numberOfArticles'] = $articles['numberOfArticles'];
$result[] = $category;

}   

print_r($result);
票数 1
EN

Stack Overflow用户

发布于 2012-07-23 00:05:08

我认为你想要做的事情可以做得更容易、更有效率:

代码语言:javascript
复制
<?php
$sql = "SELECT categories.name, COUNT(articles.id) AS cnt
    FROM categories
    LEFT JOIN articles ON articles.category=categories.category";
$query = mysql_query($sql);
while ($category = mysql_fetch_assoc($query)) {
    echo $category['name'].' - '.$category['cnt'];
}
?>

(当然,我不知道您的表结构,我不得不猜测字段名,但这应该会让您对它的工作原理有所了解)。关于连接,你应该阅读MYSQL docs。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11601714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档