使用PHP中的数据库创建类别

时间:2013-11-29 12:24:40

标签: php mysql database categories

您好我想创建列出的类别保存在我的数据库中,这样当用户上传他的图像​​并选择类别时,它会将数据保存在Cat列的数据库中 现在我想用PHP这样显示类别

Categories           Total
Animals               (4)
Celebrations          (2)
Locations And Travel  (11)
Object or still life  (1)
Transportation        (9)

这是我的PHP我成功地显示了类别名称,但不是每个类别中的总类别

<?php
$con=mysqli_connect("localhost","root","123","user");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"Select Cat from save_data Group By Cat ")
    or die(mysql_error());  

echo "<table border='1'>
<tr>
<th>Categories</th>

<th>Total</th>
</tr>";

while($row = mysqli_fetch_array($result, MYSQL_ASSOC))
  {
  echo "<tr>";
          echo "<td>" . $row['Cat'] . "</td>";



  echo "</tr>";
  }
echo "</table>";



mysqli_close($con);



?>

2 个答案:

答案 0 :(得分:0)

扩展表格单元格:

<td colspan="2"></td>

这种方式扩展到另一个单元格。

另外我注意到你正在混合mysqli和mysql:

or die(mysql_error()); 

尝试使用mysqli作为对象和\Exceptions而不是错误。值得了解: - )

<强>更新

我一开始并不理解你的问题。请提供您的架构,以便我们可以看到您的表格结构。

通常你会有 2个表,一个有类别,一个有数据,并加上GROUP BY(如果一个项目可以在几个类别中,你会有第三个表格比如category_has_item!):

SELECT c.category AS cat,
       COUNT(i.items) AS num
FROM category c
LEFT JOIN items i
  ON c.category_id = i.category_id
GROUP BY c.category

使用LEFT JOIN显示空类别,JOIN(不包含LEFT)以避免显示空类别。

更改表格回显:

echo "<td>" . $row['cat'] . "</td><td>(" . $row['num'] . ")</td>"; 

<强>更新

如果您只有一张桌子,我强烈建议您阅读database normalization

更新您的查询:

Select Cat,COUNT(Data) AS num from save_data Group By Cat

Data替换为您的数据列

和你的回声线:

echo "<td>" . $row['Cat'] . "</td><td>(" . $row['num'] . ")</td>"; 

答案 1 :(得分:0)

尝试像这样更改你的SQL查询

SELECT count(*) AS total_count FROM (SELECT Cat FROM save_data GROUP BY Cat HAVING COUNT(Cat) > 1) AS t