未定义的偏移量试图从数据库中回显数据[重复]

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/…

以上是关于未定义的偏移量试图从数据库中回显数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在php中回显/返回一个数组

具有限制和偏移量的 CodeIgniter sql 查询未显示结果

如何从数据库中回显具有特定变量的行

当我尝试使用 Laravel 中的“别名”从数据库中获取值时如何修复“未定义的偏移量:0”

使用单个查询从相关数据库表中回显嵌套的 JSON 数组?

在 WooCommerce 购物车中回显特定的产品属性和元数据