列表在与 PHP 集成时无法正确显示


List won't show up correctly when integrated with PHP

>我制作了一个具有积分系统的数据库,为了将其转换为排名,我计划从最高到最低显示数据库中的数据,然后使用列表用数字显示它。但是,当将其显示为列表时,它仅显示为: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>";
}
?>

如评论中所述,删除您的

<td> 

标记或做一个表而不是有序列表,最好使用 ' 而不是 " 来包围带有属性的 HTML 标记,并使用 " 作为属性值,因为这样你就可以得到有效的 html,并且在 PHP 中没有问题。列表的正确代码是:

<?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

你的HTML坏了。您不能在<ol>中包含<td>元素。您需要创建如下结构:

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

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

你可以使用它

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