1

I need to display some ordered numbers, from 1 to 15 right before the ID, so basically, I need a new number on every new row, like this:

  1. ID NAME KILLS, etc.
  2. ID NAME KILLS, etc.
  3. ID NAME KILLS, etc. ...
  4. ID NAME KILLS, etc.

Here is the code, I failed with "foreach" for some reason, I got a repeating loop 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 Answers 4

2

Initialize a variable $i = 1; right before your loop, echo it and increment $i++; in the end of the loop body

$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++;
}
Sign up to request clarification or add additional context in comments.

1 Comment

I was about to suggest the same... add a counter variable.
0

You just need to add an integer to increment.

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

Changed the formatting a bit to make it a little more readable...

Or you can alternatively use a numbered list in 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;

The numbered list method may not be the best method within a table.

Comments

0

Also, you could try iterating with a for loop, using the mysql_result() php function, something like this:

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

Comments

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

This one should be fine too:)

1 Comment

of course no. You have 2 nested loops. Why do you need 2 loops?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.