我面临的问题:
我要在省份的两侧对等分部属于该省的下属城市。
形式如下:
<dl>
<dd class="c_box02_lf c_cbg"><a href="#">北海   Beihai</a></dd>
<dd class="c_box02_mid">广西<br />Guangxi</dd>
<dd class="c_box02_rt c_cbg"><a href="#">南宁Nanning</a></dd>
</dl><dl>
<dd class="c_box02_lf c_cbg"><a href="#">济南 Jinan</a> | <a href="#">青岛 Qingdao</a></dd>
<dd class="c_box02_mid">山东<br />Guangxi</dd>
<dd class="c_box02_rt c_cbg"><a href="#">日照 Rizhao</a> | <a href="#">马鞍山 Ma'anshan</a></dd>
</dl>我写的代码如下,由于初学,东西很糟糕,见谅:
<?php
$sql="SELECT a.prevkind,a.previd,a.prevname,a.prevenname,b.jj_kind,b.jjid FROM eetoday_prev as a Inner Join eetoday_prevsjj as b ON a.previd = b.previd WHERE b.jj_kind='".$bh."' order by a.prevname";
$result=$db->query($sql);
while($row=$db->getarray($result)){$sql_c="SELECT b.jj_kind,b.jjid,c.cityname,c.cityenname,c.cityid,p.previd FROM eetoday_prevsjj AS b Inner Join eetoday_city AS c ON c.cityid = b.cityid Inner Join eetoday_prev AS p ON c.previd = p.previd WHERE b.jj_kind ='".$row[jjid]."' and p.previd='".$row[previd]."'";
$result_c=$db->query($sql_c);
?>
<dl>
<?php
$i=1;
while($row_c=$db->getarray($result_c)){
if ($i==1){?>
    <dd class="c_box02_lf c_cbg"><a href="<?=$i?>"><?=$row_c[cityname]?>   <?=$row_c[cityenname]?></a></dd><?php
}
?><?php 
$i=$i+1;
if ($row[prevkind]=='直辖市'){?>
<dd class="c_box02_mid"><a href="Vertical-Organizations-2.php?previd=<?=$row[previd]?>" class="c_box02_mid"><?=$row[prevname]?><br /><?=$row[prevenname]?></a></dd>
<?php
}
else
{
?>
<dd class="c_box02_mid"><a href="Vertical-Organizations-3.php?previd=<?=$row[previd]?>" class="c_box02_mid"><?=$row[prevname]?><br /><?=$row[prevenname]?></a></dd>
<?php
}
if ($i==2)
{
?>


<dd class="c_box02_rt c_cbg"><a href="<?=$i?>"><?=$row_c[cityname]?>   <?=$row_c[cityenname]?></a></dd>

<?php
$i=1;
}
}
?>


</dl>
          
<?
}
?>

解决方案 »

  1.   

    可以试试这种方法,把你查的省份信息放在一个数组 把城市信息放在一个数组 循环这个省份数组 循环所有城市信息当城市的省份字段等于循环省份的话 就生成相关HTML
      

  2.   

    如果是两侧的话可以判断循环的次数 上面那个DD只显示单数的 下面那个DD只显示双数的 
      

  3.   

    何必这么麻烦,搞一个二维数组,第一维放省,第二维放市即可解决了啊。例如:$arr[0]='浙江';
    $arr[1]='江苏';
    $arr[2]='山东';
    $arr[0][0]='杭州';
    $arr[0][1]='宁波';调用的时候用双循环。