警告:尝试访问第 41 行 C:\xampp\htdocs\crud\read.php 中 null 类型值的数组偏移量 [关闭]

Posted

技术标签:

【中文标题】警告:尝试访问第 41 行 C:\\xampp\\htdocs\\crud\\read.php 中 null 类型值的数组偏移量 [关闭]【英文标题】:Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\crud\read.php on line 41 [closed]警告:尝试访问第 41 行 C:\xampp\htdocs\crud\read.php 中 null 类型值的数组偏移量 [关闭] 【发布时间】:2021-11-23 03:41:09 【问题描述】:

我想创建一个网站来执行我的基本 SQL 功能,如创建、读取、更新和删除,当我收到此错误时,我正在读取页面:

警告:尝试访问第 41 行 C:\xampp\htdocs\crud\read.php 中 null 类型值的数组偏移量。

这是我的代码:

<?php
    $link = mysqli_connect("localhost", "root", "", "db_school");
    if (mysqli_connect_error()) 
        die ("Database Connection Error");
    
    $query = "SELECT * FROM tbl_student ORDER BY id DESC";
    $result = mysqli_query($link, $query);
?>
<!DOCTYPE html>
<html>
    <head>
        <title>Read</title>
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
    </head>
    <body>
            <?php
                include 'procces_read.php';
            ?>
        <div class="container">
            <div class="box">
                <h4 class="display-4 text-center">Read</h4>
                <br>
                <?php if (isset($_GET['success']))  ?>
                    <div class="alert alert-success" role="alert">
                        <?php echo $_GET['success']; ?>
                    </div>
                <?php  ?>
                <?php if (mysqli_num_rows($result))  ?>
                    <table class="table table-striped">
                        <thead>
                            <tr>
                                <th scope="col">#</th>
                                <th scope="col">Student ID</th>
                                <th scope="col">Student Name</th>
                                <th scope="col">Student DOB</th>
                                <th scope="col">Student Sex</th>
                                <th scope="col">Student Class</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php 
                                $i = 0;
                                while($rows = mysqli_fetch_assoc($result))
                                    $i++;
                                
                            ?>
                            <tr>
                                <th scope="row"><?php echo $i; ?></th>
                                <td><?php echo $rows['student_id'];?></td>
                                <td><?php echo $rows['Name']; ?></td>                       
                                <td><?php echo $rows['DOB']; ?></td>                        
                                <td><?php echo $rows['sex']; ?></td>                        
                                <td><?php echo $rows['Class']; ?></td>
                            </tr>
                        <?php  ?>
                    </tbody>
                </table>
                <div class="link-right">
                    <a href="create.php" class="link-primary">Create</a>
                </div>
            </div>
        </div>
    </body>
</html>

【问题讨论】:

那是因为你做错了while循环。你在那里什么都不做,只是增加 $i 计数器变量。输出下面的表格行,属于 into 循环,而不是在它之后。 你的 while 循环没有做任何事情。毕竟移动右大括号echo 【参考方案1】:

您的表格行(从&lt;tr&gt;&lt;/tr&gt;)应该在while 循环内。 $rows 变量未在其外部定义。

                        <tbody>
                            <?php 
                                $i = 0;
                                while($rows = mysqli_fetch_assoc($result))
                                    $i++;
                            ?>
                            <tr>
                                <th scope="row"><?php echo $i; ?></th>
                                <td><?php echo $rows['student_id'];?></td>
                                <td><?php echo $rows['Name']; ?></td>                       
                                <td><?php echo $rows['DOB']; ?></td>                        
                                <td><?php echo $rows['sex']; ?></td>                        
                                <td><?php echo $rows['Class']; ?></td>
                            </tr>
                        <?php 
                     ?>

【讨论】:

非常感谢 Saphir 成功了。

以上是关于警告:尝试访问第 41 行 C:\xampp\htdocs\crud\read.php 中 null 类型值的数组偏移量 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

FreeBSD Echoprint 代码生成器

PHP 警告:8978294 字节的 POST 内容长度超过第 0 行未知中 8388608 字节的限制

PHP 警告:8978294 字节的 POST 内容长度超过第 0 行未知中 8388608 字节的限制

PHP 警告:8978294 字节的 POST 内容长度超过第 0 行未知中 8388608 字节的限制

警告:20616317 字节的 POST 内容长度超出第 0 行未知中 8388608 字节的限制

警告:20616317 字节的 POST 内容长度超过第 0 行未知中 8388608 字节的限制