未定义的偏移量试图从数据库中回显数据[重复]
Posted
技术标签:
【中文标题】未定义的偏移量试图从数据库中回显数据[重复]【英文标题】:Undefined offset trying to echo data from database [duplicate] 【发布时间】:2017-11-24 23:31:51 【问题描述】:我正在尝试回显数据库中设置的敏捷性数量。这是我当前的代码,如果您可以检查一下,看看是否需要更改任何内容才能使其正常工作。目前我收到错误
注意:未定义的偏移量:0 in
$dbserver = "localhost";
$dbusername = "root";
$dbpassword = "*******";
$db = "********";
//CREATE CONNECTION
$conn = new mysqli($dbserver, $dbusername, $dbpassword, $db);
$id = $_SESSION['loggedin'];
$query = "SELECT * FROM stats WHERE id='$id'";
$stmt = mysqli_query($conn, $query);
$result = mysqli_fetch_all($stmt,MYSQLI_ASSOC);
<div class="Agility">
<h2>Agility</h2>
<p><?php echo $result[0]['agility']; ?></p>
</div>
【问题讨论】:
似乎没有 $result[0] 正如您的错误通知所说的那样。当在数据库中找不到记录时,可能会发生这种情况 查看正在发生的事情的最快、最快的方法是检查 $result 实际上是什么。您可以通过添加一行来做到这一点 var_dump($result);在您分配它之后,即在您的 $result=mysqli_fetch_all()..... 语句之后。你得到了什么? 【参考方案1】:首先,由于您的 id 字段可能是唯一的,因此您应该将查询限制为一个。然后,在显示结果之前检查查询返回的行数,以防没有。
$query = "SELECT * FROM stats WHERE id='$id' LIMIT 1";
$stmt = mysqli_query($conn, $query);
if(mysqli_num_rows($stmt) > 0)
$result = mysqli_fetch_all($stmt,MYSQLI_ASSOC);
?>
<div class="Agility">
<h2>Agility</h2>
<p><?php echo $result[0]['agility']; ?></p>
</div>
<?php else ?>
<p>There are no results.</p>
<?php ?>
【讨论】:
对不起,如果列已经是唯一的,他为什么要把查询限制为一个呢?我试图自己找出来,但我发现:***.com/questions/3848390/…以上是关于未定义的偏移量试图从数据库中回显数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章
具有限制和偏移量的 CodeIgniter sql 查询未显示结果