kangjacob 2022-10-10 21:00 采纳率: 96.8%
浏览 38
已结题

为什么总是重复第一条数据?

本来想着这样的代码会将数据库里面的数据的读取并展示出来,但奇怪的是总只是返回第一条数据,是我的循环设置错误了?还请指点为感,谢谢!


<?php 
//这段代码对未通过会员认证的人进行了跳转登录页面的处理


if($_COOKIE['userRight']!= 'normalRight'){ 
    header('location:loginPage.php');
    exit();
}
require_once('dataBase.php');//create the connection to database
$userName=$_COOKIE['userName'];
$sql="SELECT * FROM result_table WHERE userName='$userName' ";
$result=$conn->query($sql);//we get all record in this step
$recordNumber=$result->num_rows;//we get the total number of the records'rows which we need
echo $recordNumber;
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>历史测评结果展示页面</title>
<style>
div{
   width: 500px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}
table{
font-size: 30px;
text-align: center;
}
td{
white-space: nowrap;
}
</style>
</head>
<body>
<?phpecho$recordNumber; for($i=1;$i<=$recordNumber;$i++){ $sql="SELECT * FROM result_table WHERE userName='{$userName}' ";//用{}可以更好的表示被引用的是个变量,据说可以防止sql注入$result=$conn->query($sql);//we get all record in this step$row=$result->fetch_assoc();//we get the last record $testDate=$row['testDate']; $testTime=$row['testTime']; echo$testTime; echo<<<EOF EOF; } $conn->close(); ?>
测评人 测评时间 测评序列
$userName $testDate $testTime
</body> </html>
  • 写回答

1条回答 默认 最新

  • 冰雪青松 2022-10-11 15:28
    关注

    遍历写错了,你可以参考 https://www.runoob.com/php/php-tutorial.html 来做,但是现在不用mysql扩展来连接数据库了,而是用PDO来连接mysql数据库,PDO的预处理才是防sql注入的,sql注入其实是sql语句把命令和数据捆绑在一起的原因,别人在输入数据的时候带了私货。PDO预处理是把命令和数据分开,别人输入数据时统统把私货当数据。不要再学php的mysql扩展了,早就淘汰了。可以参考《细说php》第四版来做。

    if ($result->num_rows > 0) {
        // 输出数据
        while($row = $result->fetch_assoc()) {
            echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
        }
    } else {
        echo "0 结果";
    }
    $conn->close();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月19日
  • 已采纳回答 10月11日
  • 创建了问题 10月10日

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用