PHP + MySQL 记分牌

标签 php mysql

我已经成功制作了一个工作完全正常的记分板,但有一个小问题。我总是将我的“名次”数字加 1。如果两个竞争对手有相同的结果,他们应该有相同的“名次”。

我现在的代码(只有 PHP 我在表格中回显它):

<?php

          while( $row = mysql_fetch_assoc( $u10z ) ){

            print "<tr>";

            print "<td>" . $i1 . "</td>";           

            print "<td>" . $row['ime'] . "</td>"; 

            print "<td>" . $row['priimek'] . "</td>"; 

            print "<td>" . $row['klub'] . "</td>";

            print "<td>" . $row['drzava'] . "</td>";

            print "<td>" . $row['vrh'] . "</td>";

            print "<td>" . $row['vrhPoskus'] . "</td>";

            print "<td>" . $row['bonus'] . "</td>";

            print "<td>" . $row['bonusPoskus'] . "</td>";

            print "</tr>";

            $i1++;

          }

        ?>

如您所见 $i1是一个“地点”计数器。

示例: example image of results

如果您查看第二个表,first(1)second(2)竞争对手应该都在 first(1)排名,因为他们都有相同的分数。

还有eighth(8)ninth(9)竞争对手应该都在 eighth(8)地点。

编辑:

我现在正在使用下面评论的代码,但我有一个小问题。数字发生了变化。

<?php

    $pre_vrh = false;
    $pre_vrhPoskus = false;
    $pre_bonus = false;
    $pre_bonusPoskus = false;
    while( $row = mysql_fetch_assoc( $u10z ) ){
        print "<tr>";
        print "<td>" . $i1 . "</td>";           
        print "<td>" . $row['ime'] . "</td>"; 
        print "<td>" . $row['priimek'] . "</td>"; 
        print "<td>" . $row['klub'] . "</td>";
        print "<td>" . $row['drzava'] . "</td>";
        print "<td>" . $row['vrh'] . "</td>";
        print "<td>" . $row['vrhPoskus'] . "</td>";
        print "<td>" . $row['bonus'] . "</td>";
        print "<td>" . $row['bonusPoskus'] . "</td>";
        print "</tr>";

        if ($pre_vrh != $row['vrh'] || $pre_vrhPoskus != $row['vrhPoskus'] || $pre_bonus != $row['bonus'] || $pre_bonusPoskus != $row['bonusPoskus']) {
            $i1++;
        }
        $pre_vrh = $row['vrh'];
        $pre_vrhPoskus = $row['vrhPoskus'];
        $pre_bonus = $row['bonus'];
        $pre_bonusPoskus = $row['bonusPoskus'];
      }

   ?>

图片: New results

最佳答案

我无法理解你在谈论分数时的意思,但是......它看起来像 if $row['vrh'], $row['vrhPoskus'], $row['bonus'] , $row['bonusPoskus'] 相同,则位置必须相同。如果是这样的话代码可以是这样的

<?php

    $pre_vrh = false;
    $pre_vrhPoskus = false;
    $pre_bonus = false;
    $pre_bonusPoskus = false;
    $place = 1;
    $i1 = 0;
    while( $row = mysql_fetch_assoc( $u10z ) ){
        print "<tr>";

        // we should compare old and new values for getting place
        if ($pre_vrh != $row['vrh'] || $pre_vrhPoskus != $row['vrhPoskus'] || $pre_bonus != $row['bonus'] || $pre_bonusPoskus != $row['bonusPoskus']) {
            $place = $i1 + 1;
        }
        $i1++;

        print "<td>" . $place . "</td>";           
        print "<td>" . $row['ime'] . "</td>"; 
        print "<td>" . $row['priimek'] . "</td>"; 
        print "<td>" . $row['klub'] . "</td>";
        print "<td>" . $row['drzava'] . "</td>";
        print "<td>" . $row['vrh'] . "</td>";
        print "<td>" . $row['vrhPoskus'] . "</td>";
        print "<td>" . $row['bonus'] . "</td>";
        print "<td>" . $row['bonusPoskus'] . "</td>";
        print "</tr>";


        $pre_vrh = $row['vrh'];
        $pre_vrhPoskus = $row['vrhPoskus'];
        $pre_bonus = $row['bonus'];
        $pre_bonusPoskus = $row['bonusPoskus'];
    }    
?>

关于PHP + MySQL 记分牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35734237/

相关文章:

php - 如何更新复合主键的一部分?

php - 如何使用对象集合?或者更确切地说,对象是否检索相似对象的集合?

php - 清除按钮单击时的文本框输入

php - 使用wpdb在数据库中输入带单引号的文本

php - 在Symfony 2.5中创建自定义错误页面

php - 散列密码并将其和盐保存到 mysql pdo utf8 编码

java - 我想在 Java 应用程序和 Xampp 之间进行连接

mysql - 计算 MYSQL 组内的百分比

php - Laravel 两个查询的内连接

shell - 使用expect、ssh、ant和mysqldump时正确转义引号和括号