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

あなたはこれを使うことができます

<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 に答える
0

コメントで述べたように、あなたの

<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
于 2013-10-11T07:06:50.383 に答える