程序员经常遇到的一个问题是以水平方式显示查询结果。获得查询结果并且以垂直方式显示它们是非常简单的,但以表格方式(HTML TABLE标签)显示的确让一些程序员感到为难。为了使用PHP达到这个目标,需要用一个计数器记录一行里已经显示了多少个记录。如果其值是0,就应该开始一个新行;如果其值达到了最大值,就表示旧的一行应该结束了。
<?php $state='AK'; $items=5; $dbc=@mysqli_connect('localhost','username','password','zips') OR die('Cannot connect to the database'); $q="SELECT city,zip_code FROM zip_codes WHERE state='$state' ORDER BY city"; $r=mysqli_query($dbc, $q); if(mysqli_num_rows($r) > 0){ echo '<table cellspacing="0" cellpadding="">'; $i=0; while(list($city, $zip_code)=mysqli_fetch_array($r, MYSQLI_NUM)){ if($i==0){ echo '<tr>'.PHP_EOL; } echo '<td align="center">'.$city.', '.$zip_code.'</td>'.PHP_EOL; $i++; if($i==$items){ echo '</tr>'.PHP_EOL; $i=0; } } if($i > 0){ for(;$i < $items; $i++){ echo '<td></td>'.PHP_EOL; } echo '</tr>'.PHP_EOL; } echo '</table>'; }else{ echo 'An invalid state abbreviation was used'; } mysqli_close($dbc); ?>