在php mysql排行榜表中显示用户排名?

2024-06-12

我创建了一个测验页面,将登录用户的测验结果存储到排行榜。

我有一个名为 Members 的表,其中包含 user 和 quiz_score 列。我根据登录用户进行的测验结果打印出排行榜。我在个人资料页面的排行榜中显示特定用户的位置时遇到问题。如果他们进入前三名,我还想附上一枚奖牌(例如 jpeg 图像)。 这是我到目前为止的排行榜代码:

    <?php

require_once 'header.php';
    // Send variables for the MySQL database class.
    $database = mysql_connect('localhost', 'root', 'password') or die('Could not connect: ' . mysql_error());
    mysql_select_db('robinsnest') or die('Could not select database');

    $query = "SELECT * FROM `members` ORDER by `quiz_score` DESC LIMIT 10";
    $result = mysql_query($query) or die('Query failed: ' . mysql_error());

    $num_results = mysql_num_rows($result);  

    echo '<div class="container marketing">
        <div class="col-xs-12 col-sm-8 col-md-6 col-sm-offset-2 col-md-offset-3">
          <table class="gradienttable">
  <tr>
    <th>Position</th>
    <th>User Name</th>      
    <th>Score</th>

  </tr>';

    for($i = 1; $i <= $num_results; $i++)
    {
         $row = mysql_fetch_array($result);

         echo "<tr>
    <td>".$i."</td>
    <td>".$row['user']."</td>       
    <td>".$row['quiz_score']."</td>

  </tr>";
    }

echo "</table>
        </div>
            </div>";
echo"<hr class='featurette-divider'>";
    echo '            <footer>
                <p class="pull-right"><a href="#">Back to top</a></p>
                <p>2015 Students-NCI, &middot; <a href="#">Privacy</a> &middot; <a href="#">Terms</a></p>
            </footer>';
?>
</body>
</html>

到目前为止,我用于打印用户分数的代码:

    <?php
require_once 'header.php';
$database = mysql_connect('localhost', 'root', 'password') or die('Could not connect: ' . mysql_error());
    mysql_select_db('robinsnest') or die('Could not select database');

    $query = "SELECT  user, quiz_score, FIND_IN_SET( quiz_score, (    
SELECT GROUP_CONCAT( quiz_score
ORDER BY quiz_score DESC ) 
FROM members )
) AS rank
FROM members
WHERE user =  '$user';";
    $result = mysql_query($query) or die('Query failed: ' . mysql_error());

    $num_results = mysql_num_rows($result);  

     echo "<p>".$query."</p>";
echo"<hr class='featurette-divider'>";

    echo '            <footer>
                <p class="pull-right"><a href="#">Back to top</a></p>
                <p>2015 Students-NCI, &middot; <a href="#">Privacy</a> &middot; <a href="#">Terms</a></p>
            </footer>';
?>
</body>
</html>

不打印登录用户的位置,只是打印 sql 查询的字符串。我尝试了几种不同的方法,但没有成功。

任何帮助将不胜感激。


Note:

  • 我删除了你的for loop()并使用while loop()供您查询。我知道您按查询结果的数量循环它,但它只会获得第一行的值。如果您分配循环的当前编号并将其作为数组附加到变量,也许是可行的。
  • 我使用了一个名为$ranking这将在每个循环上增加(删除了$num_results,因为你不再需要它了)。
  • 您以错误的方式混合 PHP 和 HTML。 PHP 附有?>在继续处理 HTML 之前。
  • 清理了一些代码。
  • 您的第二个给定代码的目的是什么?如果您已经尝试在第一个代码中显示数据?但我仍然尝试通过获取数据并使用来显示数据(如果查询正确)while loop.
  • 确保您的查询正确(连接凭据、数据库名称、表名称、列名称等)

您的固定代码:

 <?php

   require_once 'header.php';
  // Send variables for the MySQL database class.
  $database = mysql_connect('localhost', 'root', 'password') or die('Could not connect: ' . mysql_error());
  mysql_select_db('robinsnest') or die('Could not select database');

  $query = "SELECT * FROM `members` ORDER by `quiz_score` DESC LIMIT 10";
  $result = mysql_query($query) or die('Query failed: ' . mysql_error());

  $num_results = mysql_num_rows($result);  
  $ranking = 1;

?>

  <div class="container marketing">
    <div class="col-xs-12 col-sm-8 col-md-6 col-sm-offset-2 col-md-offset-3">
      <table class="gradienttable">
        <tr>
          <th>Position</th>
          <th>User Name</th>      
         <th>Score</th>
        </tr>
  <?php
         while($row = mysql_fetch_array($result)){
           ?>
           <tr>
             <td><?php echo $ranking; ?></td>
             <td><?php echo $row['user']; ?></td>       
             <td><?php echo $row['quiz_score']; ?></td>
           <?php
             $ranking = $ranking + 1; /* INCREMENT RANKING BY 1 */
           ?>
           </tr>
       <?php
         } /* END OF WHILE LOOP */
       ?>

      </table>
    </div>
  </div>

<hr class="featurette-divider">
  <footer>
    <p class="pull-right"><a href="#">Back to top</a></p>
    <p>2015 Students-NCI, &middot; <a href="#">Privacy</a> &middot; <a href="#">Terms</a></p>
  </footer>

</body>
</html>

您的第二个给定代码:

<?php
  require_once 'header.php';
  $database = mysql_connect('localhost', 'root', 'password') or die('Could not connect: ' . mysql_error());
  mysql_select_db('robinsnest') or die('Could not select database');

  $query = "SELECT  user, quiz_score, FIND_IN_SET( quiz_score, (    
  SELECT GROUP_CONCAT( quiz_score
  ORDER BY quiz_score DESC ) 
  FROM members )
  ) AS rank
  FROM members
  WHERE user =  '$user';";

    $result = mysql_query($query) or die('Query failed: ' . mysql_error());

    $num_results = mysql_num_rows($result);  

    while($row = mysql_fetch_array($result)){
?>    
      <p><?php echo $row['user']." - ".$row['quiz_score']; ?></p>
  <?php
    } /* END OF WHILE LOOP */
  ?> 

  <hr class="featurette-divider">

  <footer>
    <p class="pull-right"><a href="#">Back to top</a></p>
    <p>2015 Students-NCI, &middot; <a href="#">Privacy</a> &middot; <a href="#">Terms</a></p>
  </footer>';

</body>
</html>

推荐:

  • 你应该使用prepared statement而不是弃用mysql_*预防功能SQL注入 https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在php mysql排行榜表中显示用户排名? 的相关文章

  • 如何在 Laravel 5.5 中编辑“页面因不活动而已过期”的视图

    在 Laravel 5 5 中 当您使用 CSRF 保护 默认情况下 并且在长时间不活动后发送发布请求时 您将收到此错误页面 屏幕截图 我对此错误表示同意 但是 我需要更改此错误的视图 文本以确保与我的应用程序风格和语言相匹配 关于如何编辑
  • xdebug_start_trace 行为异常

    我正在尝试进一步减少脚本内存使用量 我试图让我的脚本使用 xdebug 生成输出来分析内存使用情况 这是一个基于 CLI 的脚本 有 shebang usr local bin php q 我向它传递一个参数并检查它 argc gt 1 i
  • 适用于 Windows 的 PHP 支持的 GUI 应用程序

    我知道 PHP 是一种解释性语言 对于基于 Web 的事物来说 不是为在实际操作系统上运行 GUI 应用程序而设计的 但是有没有办法呢 基本上 是否有一个框架 系统允许我创建 本机 基本上是二进制文件 exe 看起来像带有本机控件和所有内容
  • WHERE 子句或 ON 子句中的 INNER JOIN 条件?

    我今天输错了一个查询 但它仍然有效并给出了预期的结果 我的意思是运行这个查询 SELECT e id FROM employees e JOIN users u ON u email e email WHERE u id 139840 但我
  • MySQL 中如何使用继承?

    所以我正在读一本关于数据库设计原理的书 并读到了有关继承的章节 但我对如何在 MySQL 中将子类与其超类 连接 感到困惑 The table structure would for example look like this 那么我如何
  • SimpleSAMLPHP 重定向循环

    我们正在尝试使用自定义 mysql 数据库设置 sso 但它在以下两个请求之间进入无限循环 POST http 192 168 0 15 simplesaml module php core loginuserpass php 设置Cook
  • PHP header() 和 jquery mobile

    我想使用 php header Location newpage php 进行重定向 我没有收到错误 但 Jquery mobile 似乎无法加载目标页面 并且地址栏仍保留旧地址 请问您有什么建议吗 Thanks 尝试添加data ajax
  • Propel Query 中的动态表名称

    我想知道您是否可以使 propel 查询的表名称动态化 有点像变量 一个例子类似于 DynamicVar Query create 我让它在 ifs 中工作 就像下面的例子一样 但如果更动态地制作 可以删除相当多的行 这些表的设置都是相同的
  • 登录后所有页面都应该是https吗?

    这有点难以解释 但我会尽力 有一个网站 每个页面上都有登录表单 其中包含用户名 密码字段 这些页面未使用 SSL 用户填写用户名 密码并提交表单后 表单将被发送到 https 的身份验证页面 对于这种情况我有几个疑问 向 https 页面提
  • 如何在 JdbcTemplate 中创建 mySQL 存储过程

    背景 为了解决 MySql 中某些语句只允许在存储过程中出现的问题 我尝试在 JdbcTemplate 提交的 sql 中创建 运行然后删除存储过程 一个简单的例子是 这恰好是在 Spring Boot 中 Service public c
  • 疯狂的 crond 行为。不断使 bash 进程失效

    我有一个看起来像这样的 crontab SHELL bin bash PATH sbin bin usr sbin usr bin MAILTO root HOME 0 59 var www html private fivemin zda
  • 如何覆盖 phpunit 中导出的变量?

    我知道我可以设置环境变量 https phpunit de manual current en appendixes configuration html在我的 phpunit xml 里面
  • 解析 PHP 响应:未捕获的语法错误:意外的标记 <

    我正在使用 AJAX 来调用 PHP 脚本 我唯一需要从响应中解析的是脚本生成的随机 ID 问题是 PHP 脚本会引发许多错误 这些错误实际上很好 不会妨碍程序功能 唯一的问题是当我跑步时 parseJSON response I get
  • 需要使用 php 从远程服务器下载与 $_FILES 相同的内容[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 好的 我有处理图像上传的 php 代
  • 避免 SQLite3 中的 SQL 注入

    我正在尝试找出一种避免 SQL 注入的好简单方法 到目前为止我只能提出两个想法 对用户输入进行 Base64 编码 其实不想这样做 使用正则表达式删除不需要的字符 目前正在使用这个 不确定是否100 安全 这是我当前的代码
  • php,in_array,0值

    我试图理解in array下一个场景的行为 arr array 2 gt Bye 52 77 3 gt Hey var dump in array 0 arr 返回值in array 是布尔值true 正如你所看到的no值等于0 所以有人可
  • 无法在 Centos 上安装 php-mysqli 扩展

    我正在尝试将 mysqli 扩展安装到 php yum install php mysqli 我收到下一个错误 Transaction Check Error file usr share mysql charsets Index xml
  • sqlsrv_num_rows 不返回任何值

    我正在尝试获取查询中返回的行数 while 循环遍历结果有效 但由于某种原因 sqlsrv num rows 不返回任何值 result SELECT from dtable WHERE id2 apple query sqlsrv que
  • NodeJS 和 PHP (Laravel) 集成用于 Socket.IO 实时聊天

    目前我有一个我写过的网站PHP通过Laravel 框架 我已经使用写了一个实时聊天nodeJS with 套接字IO and Express现在我想做的是将它集成到我已经编写的 Laravel 网站中 问题是聊天必须在主页中 当前由 Lar
  • PHP - 查找和比较日期

    你好 我有 foreach 我可以在其中获取数据库中的事件数据 我使用数据库中的日期名称 例如 event date 我需要在一个 div 中比较具有相同日期和输出的操作 例如我有这个事件 活动一 9 月 13 日 活动二 9 月 1 日

随机推荐

  • 返回重复假期活动的日历

    我发现 当有两个帐户链接到他们的设备 并且两个帐户都同步其日历 并且两个帐户都设置为显示 Google 假日日历时 CalendarContract Instances 将每个假日返回两次 每个帐户返回一次日历 因此 在这种情况下 您会看到
  • 警告:Windows 调试器中的 [something] 与 [something] 重叠是什么意思?

    我正在为 uni 项目的一部分编辑 Windows Research Kernel WRK 有时当我启动运行我的内核的虚拟机时 Windows 调试器会显示如下内容 WARNING rdpdr overlaps raspptp baa740
  • 如何使用Popen运行后台进程并避免僵尸进程?

    我有一个侦听器服务器为每个客户端处理程序运行新线程 每个处理程序可以使用 proc subprocess Popen argv executable Main py stdout stdout stderr subprocess STDOU
  • jlink 打包当前平台的二进制文件

    我正在尝试构建使用 Java 11 构建并打包的应用程序的跨平台档案jlink 对于跨平台打包 我的构建基于这个答案 https stackoverflow com questions 47593409 create java runtim
  • Laravel中间件获取路由参数

    我正在编写诸如 学校俱乐部管理系统 之类的东西 并遇到一些资源授权问题 假设有club and club有经理 我想检查用户是否是经理club在他可以使用中间件管理它之前 使用 Laravel 5 2 My router看起来像这样 Rou
  • 如何从 MySQL .frm 恢复数据?

    我的所有数据都在 MySQL frm 文件中 我怎样才能恢复数据 我不想恢复所有这些 只想恢复一些记录和表格 所以我需要对它们进行转储 据我所见 只有 frm 文件 没有 myd 文件 但是 有 ibdata1 文件 我该如何恢复 我成功了
  • tf.gfile 在 TensorFlow 中起什么作用?

    我见过人们使用以下几个函数tf gfile例如tf gfile GFile or tf gfile Exists 我有一个想法tf gfile处理文件 但是 我无法找到官方文档来了解它还提供了什么 如果你能帮我的话那就太好了 对于登陆这里的
  • 如何计算R中的月份差异

    我有格式的日期2015 03 即年月 现在我想计算两个日期之间的月份差异 示例 日期之间的差异2015 03 and 2014 12应该是 3 或 4 因为 12 月到 3 月是 3 个月或 4 个月 这取决于我们是否考虑 12 月 你可以
  • Directory.CreateDirectory 延迟问题?

    我正在尝试创建一个远程目录 然后向其中写入一个文件 每隔一段时间 应用程序就会在尝试写入文件时失败并出现 System IO DirectoryNotFoundException 当我写入文件时 我使用返回的 DirectoryInfo 对
  • 在 mat-table 父级中使用 ngif 时,mat-filtering/mat-sort 无法正常工作

    请注意 分页 排序无法正常工作 分页不显示它所显示的元素数量 并且排序不起作用 但是如果删除 html 文件中的行 ngIf dataSource filteredData length gt 0 错误已修复 如果使用过滤 它可以工作 但不
  • 如何在minikube中创建多个集群

    我需要在 minikube 中创建额外的集群 我搜索了一段时间没有找到任何这方面的资源 如何在 minikube 中创建集群 创建第一个名为cluster 1 minikube start p cluster 1 创建第二个集群 名称为cl
  • PsychoPy 在 64 位操作系统上发送触发器

    我在 Win7 64 位操作系统上使用 PsychoPy 独立版 v1 81 00 发送脑电图记录触发器时遇到问题 我按照描述进行操作here https groups google com forum searchin psychopy
  • 通过命令行参数选择要使用的 ocaml 模块

    在我的代码中我有module M Implementation1然后我参考M 代替Implementation1 问题是 我必须重新编译我的程序才能改变Implementation1 to Implementation2 我想通过命令行参数
  • 如何判断一个int数是奇数还是偶数? (二进制方式)

    我想利用基础知识来提高代码效率 我知道在二进制系统中 当数字的最后一位是 1 时 这是奇数 0 是偶数 在python中如何用这种方式判断一个int数 python 是否提供了任何内置方法来执行此操作 和 1 000010100100010
  • Facebook 图表访问封闭群组提要/帖子

    我正在尝试获取 Facebook 上特定群组的帖子列表 即closed 我也是not管理员 只是该组的成员 当我尝试通过图形资源管理器访问该组的帖子时 我检查了所有权限 我收到返回的空列表 Facebook 不允许此访问的原因是什么 如果我
  • 为什么我们需要不同的指针数据类型?

    基本上指针是一个用于存储内存地址的变量 它总是十六进制 内存地址 那么为什么我们需要不同的数据类型来存储地址 例如 int a 我们可以用这个 a 来存储浮点地址吗 并非所有指针 必须具有 相同的大小 如果您有一个需要对齐到 10 MB 的
  • Redux 更新嵌套数据 [不可变更新模式]

    任何人都可以帮助解决此更新模式 我没有使用任何像 immer 这样的库 我必须更新嵌套对象 数据看起来像 dis 样本数据 isFetching false data nba stack 1 我的减速机 state isFetching f
  • 使用 Nodemon 在 Node.js v6.2.0 上安装 Babel V6.x ES7 Async/Await

    伙计 设置起来很痛苦 我已按照此处的安装说明进行操作 单击 nodemon 框 https babeljs io docs setup installation https babeljs io docs setup installatio
  • Protractor 测试用例在 Internet Explorer 11 中不起作用

    量角器测试用例在 Windows 10 企业版上的 Internet Explorer 11 中不起作用 Protractor conf js has below configuration seleniumAddress http loc
  • 在php mysql排行榜表中显示用户排名?

    我创建了一个测验页面 将登录用户的测验结果存储到排行榜 我有一个名为 Members 的表 其中包含 user 和 quiz score 列 我根据登录用户进行的测验结果打印出排行榜 我在个人资料页面的排行榜中显示特定用户的位置时遇到问题