【问题标题】:List categories with number count for each item列出每个项目的数量计数类别
【发布时间】:2016-01-05 23:34:37
【问题描述】:

您好,我想在类别页面上列出 6 个类别,每个类别都有项目数。

我的桌子是..

表格:分类

+--------+--------+--------+----------+--------+
| catid  |  name  |  title |  url     |  icon  |
+--------+--------+--------+----------+--------+
|   1    |  Name  |  Name  |  urlname | 1.jpg  |
|   2    |  Name  |  Name  |  urlname | 2.jpg  |
|   3    |  Name  |  Name  |  urlname | 3.jpg  |
|   4    |  Name  |  Name  |  urlname | 4.jpg  |
|   5    |  Name  |  Name  |  urlname | 5.jpg  |
|   6    |  Name  |  Name  |  urlname | 6.jpg  |
|   7    |  Name  |  Name  |  urlname | 7.jpg  |
|   8    |  Name  |  Name  |  urlname | 8.jpg  |
|   9    |  Name  |  Name  |  urlname | 9.jpg  |
|   10   |  Name  |  Name  |  urlname | 10.jpg |
|   11   |  Name  |  Name  |  urlname | 11.jpg |
|   12   |  Name  |  Name  |  urlname | 12.jpg |
|   13   |  Name  |  Name  |  urlname | 13.jpg |
|   14   |  Name  |  Name  |  urlname | 14.jpg |
|   15   |  Name  |  Name  |  urlname | 15.jpg |
|   16   |  Name  |  Name  |  urlname | 16.jpg |
+--------+--------+--------+----------+--------+

表格:jocuri

+---------+--------+----------+-----------+-----------+-----------+-----------+-----------+-----------+
| fileid  |  name  | category | category2 | category3 | category4 | category5 | category6 |   status  +
+---------+--------+----------+-----------+-----------+-----------+-----------+-----------+-----------+
|    1    |  name  |     1    |    9      |     0     |     0     |     0     |     0     |      1    |
|    2    |  name  |     1    |    18     |     24    |     16    |     11    |     9     |      0    |
|    3    |  name  |     2    |    11     |     9     |     13    |     0     |     0     |      0    |
|    4    |  name  |     1    |    20     |     14    |     0     |     0     |     0     |      1    |
|    5    |  name  |     6    |    8      |     16    |     22    |     10    |     18    |      1    |
|    6    |  name  |     2    |    13     |     10    |     0     |     0     |     0     |      1    |
|    7    |  name  |     1    |    14     |     9     |     8     |     0     |     0     |      0    |
|    8    |  name  |     5    |    12     |     11    |     9     |     15    |     8     |      1    |
|    9    |  name  |     1    |    9      |     8     |     11    |     13    |     10    |      1    |
|    10   |  name  |     1    |    10     |     8     |     9     |     0     |     0     |      1    |
|    11   |  name  |     1    |    8      |     9     |     12    |     10    |     16    |      1    |
|    12   |  name  |     6    |    10     |     0     |     0     |     0     |     0     |      0    |
+---------|--------+----------+-----------+-----------+-----------+-----------+-----------+-----------+

什么是正确的命令(php和mysql)在类别页面上列出,所有状态为1的类别,随机并显示每个类别的fileid数量?

非常感谢!

【问题讨论】:

  • 欢迎来到 StackOverflow。请阅读How to Ask。到目前为止,您尝试过什么?
  • 那张桌子 jocuri 到底是做什么的?它是干什么用的?表 categorii 是否与 jocuri 相关联?如果是...通过所有类别字段中的哪一个...?
  • 在表 jocuri 上列出了项目,在行类别、类别 2 等上是表 categorii 中的类别
  • 据我了解,您在 jocury 中有文件,每个文件有 6 个类别?在这种情况下,我会更改您的数据库,以便有一个额外的表将类别链接到文件。另外,“状态 1”是什么意思?
  • 每个 jocuri 行都是 6 个类别的列表,链接到 categorii 表,我明白了。 @TerryO.:为自己做点什么,用列制作第三张表:jocuri_fileid、categorii_catid,并用列 categoryX 中的对应值填充它。因此,对于 fileid 1,您将在新表中获得行 [(1,1), (1,9)]。之后,删除 categoryX 列并尝试编写您要求的代码(它会变得更容易),如果您失败,请在此处发布您的代码。

标签: php mysql


【解决方案1】:

首先将您的数据库更改为 3 个表。

类别

+--------+--------+--------+----------+--------+
| catid  |  name  |  title |  url     |  icon  |
+--------+--------+--------+----------+--------+
|   1    |  Name  |  Name  |  urlname | 1.jpg  |
|   2    |  Name  |  Name  |  urlname | 2.jpg  |
|   3    |  Name  |  Name  |  urlname | 3.jpg  |
|   4    |  Name  |  Name  |  urlname | 4.jpg  |
|   5    |  Name  |  Name  |  urlname | 5.jpg  |
|   6    |  Name  |  Name  |  urlname | 6.jpg  |
|   7    |  Name  |  Name  |  urlname | 7.jpg  |
|   8    |  Name  |  Name  |  urlname | 8.jpg  |
|   9    |  Name  |  Name  |  urlname | 9.jpg  |
|   10   |  Name  |  Name  |  urlname | 10.jpg |
|   11   |  Name  |  Name  |  urlname | 11.jpg |
|   12   |  Name  |  Name  |  urlname | 12.jpg |
|   13   |  Name  |  Name  |  urlname | 13.jpg |
|   14   |  Name  |  Name  |  urlname | 14.jpg |
|   15   |  Name  |  Name  |  urlname | 15.jpg |
|   16   |  Name  |  Name  |  urlname | 16.jpg |
+--------+--------+--------+----------+--------+

文件ID

+---------+--------+
| fileid  |  name  |
+---------+--------+
|    1    |  name  |
|    2    |  name  |
|    3    |  name  |
|    4    |  name  |
|    5    |  name  |
|    6    |  name  |
|    7    |  name  |
|    8    |  name  |
|    9    |  name  |
|    10   |  name  |
|    11   |  name  |
|    12   |  name  |
+---------|--------+

FileIDs_has_Categories

    +---------+------------+
    | fileid  |  category  |
    +---------+------------+
    |    1    |    1       |
    |    1    |    9       |
    |    2    |    1       |
    |    2    |    18      |
    |    2    |    24      |
    |    2    |    16      |
    |    2    |    11      |
    |    2    |    9       |
    |    3    |    11      |
    |    3    |    9       |
    |    3    |    13      |
    |    4    |    1       |
    +---------|------------+

然后您可以通过

获得您的类别计数(链接到该类别的文件 ID 的数量)
SELECT COUNT(fileid) FROM FileIDs_has_Categories where category = 1

这将返回您拥有的类别 1 的文件数量

【讨论】:

  • 这是一个正确的方法,在问题的 cmets 中也提到:+1
  • 确实如此,不过由于topicstarter似乎是初学者,所以我决定把它写得更详细一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-13
  • 1970-01-01
相关资源
最近更新 更多