如何以相反的方向打印列表?

时间:2019-02-10 17:55:52

标签: php html mysql

我的问题是默认情况下列表从上至下打印,但我想从下至上打印,这意味着第一个值应位于底部,最后一个值应位于顶部。

<?php 
$query="select name from plant ";
$q=mysqli_query($con,$query)or die("Could Not Perform the Query");
$hh = '';
while ($row = $q->fetch_assoc())
{
$hh .= '<li><a href="#">' . $row['name'] . '</a></li>';
}
?>
<ul id="myUL">
<?php echo $hh; ?> 
</ul> 

默认情况下,它将打印:-

芒果

苹果

葡萄

但是我想要:-

葡萄

苹果

芒果

3 个答案:

答案 0 :(得分:0)

如果要通过选择查询来自定义结果的顺序,则必须在定义单个元素顺序的表上创建一个附加字段,然后可以使用select语句并按新字段对它们进行排序。 例如,您在表上有theese列:

id,名称,order_column,created_at

,您在此表上有3条记录: 1,比萨,1,2019-02-10 2,冥王星,5,2019-02-10 3,topolino,3,2019-02-10

其中第三列是元素在列上的顺序,如果要按其顺序进行排序,则应使用类似这样的查询

  select name from table_name order by order_column ASC

  select name from table_name order by order_column DESC

就是这样!

答案 1 :(得分:0)

您应该使用SQL查询进行排序,但是您也可以在PHP中实现此目的。将结果保存到数组中并反转渲染顺序。

<?php 

  $plants = array(); 
  while( $row = $q->fetch_assoc() ) {
     $plants = $row['name'];
  }

  $index = count( $plants );
?>

<ul id="myUL">
  <?php while( $index ) { ?>
      <li><a href="#"><?php echo $plants[--$index]; ?></a></li>
  <?php } ?>
</ul>

您也可以尝试array_reverse

答案 2 :(得分:-1)

这很简单。按降序对查询结果进行排序:

select name from plant order by name desc