0

我创建了一个具有积分系统的数据库,并将其转换为排名,我计划将数据库中的数据从最高到最低显示,然后使用列表以数字显示它。但是,当将其显示为列表时,它只会显示为:1. 1. 1. 1. 1. 1.

(一直持续到 10 点)

这不是它应该采取的行动,我已经尝试改变代码周围的东西,结果只会变得更糟。任何人都可以帮忙吗?

    <?php 
 $con=mysqli_connect("localhost","root","","gg");       
 $mw2ranks = mysqli_query($con,"SELECT * FROM qsmw2 ORDER BY points DESC") ;

while($row = mysqli_fetch_array($mw2ranks))
{
echo "<td><ol><li style='list-style-type:decimal;'> ".$row['points']."</li></ol></td>   <td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td></tr>";

}
?>
4

3 回答 3

0

您的 HTML 已损坏。您不能<td><ol>. 您需要创建这样的结构:

<td>
  <ol>
    <li> Some stuff </li>
    <li> Some stuff </li>
    <li> Some stuff </li>
    <li> Some stuff </li>
  </ol>
</td>

像这样对元素进行分组<li>将允许编号工作,但显然它会弄乱您的表格布局。您的替代方法是在 PHP 脚本中生成编号,根本不使用有序列表结构。

于 2013-10-11T07:02:18.407 回答
0

如评论中所述,删除您的

<td> 

标记或做一个表格而不是有序列表,最好使用 ' 而不是 " 来围绕其中包含属性的 html 标签,并使用 " 作为属性值,因为这样你会得到有效的 html 并且在 php.ini 中没有问题。列表的正确代码是:

<?php 
$con=mysqli_connect("localhost","root","","gg");        
$mw2ranks = mysqli_query($con,"SELECT * FROM qsmw2 ORDER BY points DESC") ;

echo "<ol>";
while($row = mysqli_fetch_array($mw2ranks))
{
  echo '<li style="list-style-type:decimal;"> '.$row['points'].'</li>';
}
?>
</ol>

对于表,您可以使用以下内容:

<?php 
$con=mysqli_connect("localhost","root","","gg");        
$mw2ranks = mysqli_query($con,"SELECT * FROM qsmw2 ORDER BY points DESC") ;
?>
<table>
  <tr>
    <?php
    while($row = mysqli_fetch_array($mw2ranks))
    {
       echo "<td> ".$row['points']."</td>
    }
    ?>
  </tr>
</table
于 2013-10-11T07:06:50.383 回答
0

你可以用这个

<table>
  <tr>
    <?php
    $i=1;
    while($row = mysqli_fetch_array($mw2ranks))
    {
       echo "<td> ".$i."</td>";
       echo "<td> ".$row['points']."</td>";
       $i++;

    }
    ?>
  </tr>

于 2013-10-11T07:23:41.847 回答