Mysql num строк в цикле while - PullRequest
       12

Mysql num строк в цикле while

1 голос
/ 04 сентября 2011

Мне нужно отобразить несколько упорядоченных чисел, от 1 до 15, прямо перед идентификатором, поэтому в основном мне нужно новое число в каждой новой строке, например:

  1. ID NAME KILLS и т. Д.
  2. ИМЯ ИМЯ УБИТ, И т.д.
  3. ID NAME KILLS и т. Д. ...
  4. ИМЯ ИМЯ УБИТ, И т.д.

Вот код, я почему-то потерпел неудачу с "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>';

Ответы [ 4 ]

2 голосов
/ 04 сентября 2011

Инициализируйте переменную $i = 1; прямо перед циклом, отобразите ее и увеличьте $i++; в конце тела цикла

$sql = mysql_query('SELECT * FROM `sc_rank` ORDER BY `kills` DESC LIMIT 15',$connect) or die (mysql_error());

$i = 1;
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>';

    $i++;
}
0 голосов
/ 04 сентября 2011
        $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>'; 
            }
        } 

С этим тоже все должно быть в порядке:)

0 голосов
/ 04 сентября 2011

Кроме того, вы можете попробовать выполнить цикл for, используя функцию mysql_result () php, что-то вроде этого:

$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 голосов
/ 04 сентября 2011

Вам просто нужно добавить целое число для приращения.

$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;

Метод нумерованного списка может быть не лучшим методом в таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...