2012-07-29 34 views
-1

我有一个表中的项目列表类似以下内容:创建使用mysql表数据

subcategory category 
------------------------ 
apples   fruits 
oranges  fruits 
pears   fruits 
honda   cars 
volvo   cars 
audi   cars 

什么是打印出来的东西像下面的例子一个简单的方法,使用PHP和MySQL?

实施例:

水果:

  • 苹果
  • 橙子

汽车:

  • 本田
  • 沃尔沃
  • 奥迪

我一直在努力,现在摸不着头脑了几个小时,我明白任何建议。

+1

至少告诉我们你卡在哪里。查询MySQL?生成有效的HTML标记?等... – 2012-07-29 19:53:46

+0

[上一个问题](http://stackoverflow.com/questions/11710271/printing-out-partially-unique-data-after-querying-a-db/11710306#11710306)可能会帮助那些谁是想知道到底在问什么。 – Vatev 2012-07-29 20:00:31

+0

想出php来遍历查询并创建一个如上所示的列表。 – AnchovyLegend 2012-07-29 20:01:15

回答

-1
$data = getData(); 
$dataByCat = array(); 
foreach($data as $row) { 
    $dataByCat[$row['category']][] = $row; 
} 

$dataByCat将是您的项目符号的“形状”中的数组。

+0

这会产生一个错误:致命错误:调用第52行D:\ Hosting \ 9453412 \ html \ cats.php中的未定义函数getData() – AnchovyLegend 2012-07-29 19:55:01

+0

将其视为伪代码... getData是一个组成函数,它返回数据从mysql – blockhead 2012-07-29 19:57:23

+0

你能解释你的代码如何回答我的问题吗? – AnchovyLegend 2012-07-29 19:58:29

0

获取类别列表,然后获取每个类别的子类别。

<?php 

$categories = array(); 

foreach ($results as $result) { 
    $category = $result['category']; 
    $categories[$category][] = $result['subcategory']; 
} 

这会给你一个多维数组,其中包含类别和键,以及子类别作为值。你可以这样循环:

<ul> 
<?php foreach ($categories as $category => $subcategories): ?> 
    <li> 
    <?php echo $category; ?> 
    <ul> 
<?php foreach ($subcategories as $subcategory): ?> 
     <li><?php echo $subcategory; ?></li> 
<?php endforeach; ?> 
    </ul> 
    </li> 
<?php endforeach; ?> 
</ul> 
+0

感谢您的答复。我收到以下错误:“为foreach提供的无效参数”$ result变量包含从select查询返回的mysql数据... – AnchovyLegend 2012-07-29 20:06:05

+0

您是否实际更改了代码以匹配您的?鉴于您没有发布我不得不承担的任何代码,其中'$ results'是您的数据库结果集。如果你的变量命名不同,那么改变它。你似乎希望人们为你写出确切的答案来复制和粘贴 - 你不会那么做。 – 2012-07-30 11:40:18

+0

我不希望任何人写我的代码,我只是想了解为什么foreach语句返回一个错误,因为$结果是从我写的select语句中从mysql数据库返回的结果,所以它不应该' t已经返回了一个错误,这就是所有... – AnchovyLegend 2012-07-30 17:45:47