0

このコードは、selectステートメントで表現された基準に基づいて最初の5行を選択し、番号で指定された列からデータをフェッチして、返されたデータをページにエコーします。

if( $connect === false )
{
  echo "Could not connect.\n";
  die( print_r( sqlsrv_errors(), true));
}

/* Select Statement */
$select = "SELECT TOP(5)name, lv FROM Character WHERE lv > 0 AND name NOT LIKE '%@%' AND name NOT LIKE '%[GM]%'
AND name NOT LIKE '%[GA]%' AND name NOT LIKE '%[DEV]%' ORDER BY lv DESC ";

/* Execute the query. */
$query = sqlsrv_query( $connect, $select);

if ( $query )
{
} 
else 
{
  echo "Error in statement execution.\n";
  die( print_r( sqlsrv_errors(), true));
}

/* Iterate through the result set printing a row of data upon each
iteration.*/
while( $row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_NUMERIC))
{
 echo "<b>Name</b>: &nbsp;".$row[0]." <br/>";
 echo "<b>Level</b>: &nbsp;".$row[1]."<br/>";
 echo "<br/>";

}

/* Free statement and connection resources. */
sqlsrv_free_stmt( $query);
sqlsrv_close( $connect);
?>

私がそれをする必要があるのはエコーされたデータであり、例えば、より高いレベルは1番目になります。これはすでにデータをレベル別に並べ替えていますが、名前ごとに番号をエコーすることはできません。私の考えは、それらをol内に表示することであり、各ユーザー名はli内にあるため、デフォルトでは、リストをスタイル設定して番号を順番に表示できます。それから私はそれをどうやってやるのか考えることができません。ヒントを教えてください。ありがとう!

4

1 に答える 1

0

これがあなたが探しているものだと思います。各名前の前に数字が印刷されます。

$counter = 1;
while( $row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_NUMERIC))
{
 echo $counter.". <b>Name</b>: &nbsp;".$row[0]." <br/>";
 echo "<b>Level</b>: &nbsp;".$row[1]."<br/>";
 echo "<br/>";
 $counter++;
}
于 2012-05-12T02:04:24.167 に答える