PHP循环输出重复

时间:2017-10-30 20:58:30

标签: php ranking

public function select(){
    $rows = [];
    $connection = $this->connect();
    $result = $connection->query("SELECT username FROM users");
    while ($row = $result->fetch_assoc()){
        $rows[] = $row;
    }

    $userlist = 0;
    foreach($rows as $username){
        $userlist .= $username['username'];
    }

    $get_rankings = [1,2,3,4];
    $get_image_path = "images/";
    $total = 0;

    for ($x = 0; $x < count($get_rankings); $x++){
        $total = $get_rankings[$x];
        $path .=  "<img src = '" . $get_image_path . $total . ".png'>\n" . $userlist . "<br/>";
        // echo "<span  class = 'align-down'>{$path}";
        // echo "<p class = 'user-name'> {$rows['0']}</p>";
        // echo "</span>";
    }

    echo $path;
}

我正在尝试输出一个简单的排名,但使用数字索引作为图像来显示它们。

在过去,我曾试图做类似的事情,但无法弄清楚如何将玩家与侧面的图像相匹配。

我得到的输出是这样的:

enter image description here

它输出每个条目4次(我明白为什么,它在一个循环中)但我无法找出正确的解决方案将它写在循环之外或正确

所需的输出是:

enter image description here

我的数据库读作:

[id][username][password]

如果有一个更简单的解决方案,我会全力以赴。我不知道如何处理这个问题。

1 个答案:

答案 0 :(得分:1)

不需要$userlist。从$rows[$x]输出用户名。

$path = "";
$max = min(count($rows), count($get_rankings));
for ($x = 0; $x < $max; $x++){
    $total = $get_rankings[$x];
    $path .=  "<img src = '" . $get_image_path . $total . ".png'>\n" . $rows[$x]['username'] . "<br/>";
    // echo "<span  class = 'align-down'>{$path}";
    // echo "<p class = 'user-name'> {$rows['0']}</p>";
    // echo "</span>";
}