回答

收藏

PHP比较列值并相应地编辑数据库

技术问答 技术问答 325 人阅读 | 0 人回复 | 2023-09-12

我是PHP新手,但有时会遇到困难。我试图找到解决方案,但我没有找到我真正需要的解决方案。
4 H# M9 C$ p  G, A3 E, F我的目标是创建一个列表,在列表中,值按降序显示,并显示排名和分数。此外,它还应该显示是否有平局。
5 ]+ d2 C$ n4 H. B" j! v如下:
7 q  ?9 t8 n$ w  \5 G; J    --------- ------ ---------------- ------- ------ | user_id | name | email          | score | tied | --------- ------ ---------------- ------- ------ | 1        | SB   | sb@gmail.com   | 1     | 0    | --------- ------ ---------------- ------- ------ | 2        | AS   | as@web.de      | 2      | 0    | --------- ------ ---------------- ------- ------ | 3        | BR   | br@yahoo.com   | 5     | 1    | --------- ------ ---------------- ------- ------ | 4        | PJ   | pj@gmail.com   | 5     | 1    | --------- ------ ---------------- ------- ------ 输出表如下:
+ ]8 V5 q1 V7 J6 W& x. l7 A$ Y7 \    ------ ------------- ------- ------ | rank | participant | score | tied | ------ ------------- ------- ------ | 1    | BR          | 5     | Yes  | ------ ------------- ------- ------ | 2    | PJ          | 5     | Yes  | ------ ------------- ------- ------ | 3    | AS          | 2      | No   | ------ ------------- ------- ------ | 4    | SB          | 1     | No   | ------ ------------- ------- ------ 我试图以正确的顺序显示排名、参与者和分数。但是,我不能tied按照我想要的方式使用这个列。每当两行(不)有相同的值时,就应该改变值。6 U# q7 H7 c, L! U- |( s
这张表是通过创建的和,使用通常的html结构,但是是通过要求php动态创建文件表内容的方式。  @( J. s& Z& e; K' V; C
在createTable从代码中可以看出,我试图通过比较当前与前一行进行比较来解决这个问题。然而,这种方法只结束了我的语法错误。我的想法是我不能SQL查询中使用php变量,我的知识不足以自己解决问题。我没有通过研究找到解决办法。
" O" h" }8 C2 H8 y. k6 ~, ?我对这种方法的另一个担忧是,它不会比较所有值来检查所有值。它只检查一个到前一个,所以它不会比较第一个和第三个。
$ I3 E8 B: y1 L5 p( r我的问题是如何用我的方法完成任务,或者如果我的方法完全错误,如何在另一条路线上寻求解决方案。
. j. h' }+ t7 U: R2 r- rindex.php[table]                        Rank            Participant            Score            Tied        createTable.phpconnect_error)              die("Connection failed: " . $conn->connect_error);    }    // SQL Query    $sql = "SELECT * FROM names ORDER BY score DESC";    $result = $conn->query("$sql");    // Initalizing of variables    $count = 1;    $previous =   while($row = mysqli_fetch_array($result))              $current = $row['score$index = $result['user_id']        if ($current == $previous)                  $update = "UPDATE names SET tied=0 WHERE user_id=$index";            $conn->query($update);          $previous = $current;?>[tr]    [td]            [/td]    [td][/td]    [td][/td]    [td]            [/td][/tr]               
; ~% q/ h4 w6 C7 \! q' ?    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则