快速的问题,我认为对于那些拥有PHP/MySQL最基本知识以上任何东西的人来说,这是一个非常简单的解决方案。基本的PHP MySQL数组分组问题
我有一个存储在城市,州和其他一些变量的数据库中的各种状态的城市列表。现在他们得到拉按城市名排序列表:
- 安克雷奇
- 马里兰州巴尔的摩市
- 芝加哥,伊利诺伊 等等等等
我希望能够到然后列出所有具有该州价值的城市。所以它会看起来像:
AK
- 安克雷奇
- 朱诺
CA
- 洛杉矶
- 圣地亚哥
- 旧金山
- 等等等等
我知道我需要做某种的foreach,并已在网上搜索,但没有发现,我可以开始工作的例子。
这就是我要拉的基本列表:
$list = mysql_query("SELECT id, alphaname, state FROM regional ORDER BY alphaname",$db);
while ($thearray = mysql_fetch_array($list)) {
echo "<li><a href='info.html?id=$thearray[id]'>$thearray[alphaname], $thearray[state]</a></li>";
}
我知道如何做到这将是运行这将是一个痛苦的,完全愚蠢的每个状态查询的唯一途径.. 。
感谢您的帮助!
更新 - 解决。尽管i-g也运作良好,但我采用了rockacola的方法。
我喜欢这种方法比ig的更好,因为它更好地将数据检索和更新的表示分离出来,但我不认为$ tharray [id]将会有任何内容,因为您的select语句只会询问名称和国家。你仍然可以使用 $ states [$ thearray [state]] [] = $ thearray [alphaname];并将ID留在其中。 (就输出而言,可以使用列表清单作为i-g已经完成的情况。) – sprugman 2010-01-05 00:50:50
@sprugman,感谢您的更正。我应该从查询中选择id,因为ID使用是@ Voodoo要求的一部分。是的,'$ states [$ thearray [state]] []'也可以让ID离开它。 – 2010-01-05 01:14:58
@sprugmanI使用ID作为变量来创建链接,所以我确实包含了它。 – Voodoo 2010-01-05 01:15:35