0 レビュー
4 回答
php-whileループのMysqlnum行
IDの直前に1から15までの順序付けられた番号を表示する必要があるため、基本的に、次のように、新しい行ごとに新しい番号が必要です。
- IDNAMEKILLSなど
- IDNAMEKILLSなど
- IDNAMEKILLSなど。 ...
- IDNAMEKILLSなど
ここにコードがあります。何らかの理由で「foreach」で失敗しました。15x15の繰り返しループが発生しました...
$sql = mysql_query('SELECT * FROM `sc_rank` ORDER BY `kills` DESC LIMIT 15',$connect) or die (mysql_error());
while ($get = mysql_fetch_array($sql))
{
echo '<tr><td>'.$get["id"].'</td><td>'.$get["name"].'</td><td>'.$get["kills"].'</td><td>'.$get["deaths"].'</td><td>'.$get["hd"].'</td><td>'.$get["eff"].'%</td><td>'.$get["acc"].'%</td><td>'.$get["damage"].'</td><td>'.$get["shots"].'</td><td>'.$get["hits"].'</td></tr>';
わからない
0
レビュー
答え :
解決策:
ループの直前で変数$i = 1;
を初期化し、エコーして $i++;
をインクリメントします。ループ本体の最後に
$ sql = mysql_query('SELECT * FROM `sc_rank` ORDER BY` kills` DESC LIMIT 15'、$ connect)またはdie(mysql_error());
{-コード-1}
while($ get = mysql_fetch_array($ sql))
{{
echo''。$i。' '。$get["id"]。' '。$get["name"]。 ' '。$get["kills"]。' '。$get["deaths"]。' '。$get[" hd "]。' '。$get["eff"]。'% '。$get["acc"]。'% ' 。$get["damage"]。' '。$get["shots"]。' '。$get["hits"]。' ';
$i++;
}
答えへのリンク
わからない
0 レビュー
答え :
解決策:
増分するには整数を追加するだけです。
$sql = mysql_query('SELECT * FROM `sc_rank` ORDER BY `kills` DESC LIMIT 15',$connect) or die (mysql_error());
$i = 0;
while ($get = mysql_fetch_array($sql))
{
$i++;
$strDisplay = "<tr><td>$i.</td><td>$get['id']</td>";
$strDisplay .= "<td>$get['kills']</td><td>$get['deaths']</td>";
$strDisplay .= "<td>$get['hd']</td><td>$get['eff']%</td>";
$strDisplay .= "<td>$get['acc']%</td><td>$get['damage']</td>";
$strDisplay .= "<td>$get['shots']</td><td>$get['hits']</td></tr>";
echo $strDisplay;
}
フォーマットを少し変更して、もう少し読みやすくしました...
または、HTMLで番号付きリストを使用することもできます。
$sql = mysql_query('SELECT * FROM `sc_rank` ORDER BY `kills` DESC LIMIT 15',$connect) or die (mysql_error());
$i = 0;
$strDisplay = "<ol>";
while ($get = mysql_fetch_array($sql))
{
$i++;
$strDisplay .= "<li><tr><td>$get['id']</td>";
$strDisplay .= "<td>$get['kills']</td><td>$get['deaths']</td>";
$strDisplay .= "<td>$get['hd']</td><td>$get['eff']%</td>";
$strDisplay .= "<td>$get['acc']%</td><td>$get['damage']</td>";
$strDisplay .= "<td>$get['shots']</td><td>$get['hits']</td></tr></li>";
}
$strDisplay .= "</ol>";
echo $strDisplay;
番号付きリスト方式は、テーブル内で最適な方式ではない場合があります。
答えへのリンク
わからない
0 レビュー
答え :
解決策:
また、 mysql_result() php関数を使用して、次のようなforループで反復を試すこともできます。
$sql = mysql_query('SELECT * FROM `sc_rank` ORDER BY `kills` DESC LIMIT 15',$connect) or die (mysql_error());
for ($i = 1; $i <= mysql_num_rows($sql); $i++) {
$get = mysql_result($sql,$i);
echo '<tr><td>'.$i.'</td><td>'.$get["id"].'</td><td>'.$get["name"].'</td><td>'.$get["kills"].'</td><td>'.$get["deaths"].'</td><td>'.$get["hd"].'</td><td>'.$get["eff"].'%</td><td>'.$get["acc"].'%</td><td>'.$get["damage"].'</td><td>'.$get["shots"].'</td><td>'.$get["hits"].'</td></tr>';
}
答えへのリンク
わからない
0 レビュー
答え :
解決策:
$sql = mysql_query('SELECT * FROM `sc_rank` ORDER BY `kills` DESC LIMIT 15', $connect) or die(mysql_error());
$max = mysql_num_rows($sql);
for($i > 0; $i <= $max; $i++) {
while($get = mysql_fetch_array($sql)) {
echo '<tr><td>'.$i.'</td><td>'.$get["id"].'</td><td>'.$get["name"].'</td><td>'.$get["kills"].'</td><td>'.$get["deaths"].'</td><td>'.$get["hd"].'</td><td>'.$get["eff"].'%</td><td>'.$get["acc"].'%</td><td>'.$get["damage"].'</td><td>'.$get["shots"].'</td><td>'.$get["hits"].'</td></tr>';
}
}
これも問題ないはずです:)
答えへのリンク
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。