我有这句话,工作很好,但列表从左到右的3列字母顺序。我希望它在列中按字母顺序垂直列出,然后继续到下一列。任何人都知道我该怎么做。

$models = mysql_query("SELECT model, id FROM model where make='$phonemake' order by model asc") or die(mysql_error());
$count = 0;
$max = 3;
while($model = mysql_fetch_array( $models ))
{
    $count++;
    echo "<div style='float:left; width:31%; padding-right:5px;'>".$model['model']."&nbsp;<a href='include/delete-model.php?id=".$model['id']."' onclick='return makesure".$model['id']."();'>Delete</a></div>";
    if($count >= $max){
        //reset counter
        $count = 0;
        //end and restart
        echo"<div style='clear:both;'></div>";

最佳答案

你有两个选择:
可以将结果缓冲到数组中并更改div的添加顺序
代码可能如下所示:

$allmodels = array();
while($model = mysql_fetch_array( $models ))
{
  $allmodels[] = $model;
}
for($i = 0; 3 * $i < count($allmodels); $i++)
{
    for($j = 0; $j < 3; $j++)
    {
        if(isset($allmodels[($i * 3) + $j]))
        {
          $model = $allmodels[($i * 3) + $j];
          // print your stuff here...
        }
    }
}

或者您可以对sql查询中的项重新排序,或者将其转储到临时表中,或者使用mysql_data_seek播放。

关于php - 在3列中按字母顺序列出mysql数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15130509/

10-16 22:09