为啥我的 php 代码没有从数据库中获取多行 [重复]

Posted

技术标签:

【中文标题】为啥我的 php 代码没有从数据库中获取多行 [重复]【英文标题】:Why my php code is not fetching multiple rows from database [duplicate]为什么我的 php 代码没有从数据库中获取多行 [重复] 【发布时间】:2021-06-18 23:14:33 【问题描述】:

这是我的 php 代码无法一次获取多行... 正如我在互联网上看到的,根据 php 的版本,功能是正确的。

<?php 
                        require'db_conn.php';
                        $q1 = "select * from contact";
                        $res = mysqli_query($conn,$q1);
                    echo "
                    <table class='table'>
                        <thead class='thead-dark'>
                            <tr>
                                <th scope='col'>#</th>
                                <th scope='col'>id</th>
                                <th scope='col'>Address</th>
                                <th scope='col'>City</th>
                                <th scope='col'>Country</th>
                                <th scope='col'>State</th>
                                <th scope='col'>Zip</th>
                                <th scope='col'>Phone</th>
                                <th scope='col'>#</th>
                            </tr>
                        </thead>";

                        while ($row = mysqli_fetch_assoc($res)) 
                        
                            $id = $row["id"];
                            $address = $row["address"];
                            $city = $row["city"];
                            $country = $row["country"];
                            $state = $row["state"];
                            $zip = $row["zip"];
                            $phone = $row["phone"];
                        

                        echo "
                        <tbody>
                            <tr>
                                <td> <input type='checkbox' name=''> </td>
                                <td>$id</td>
                                <td>$address</td>
                                <td>$city</td>
                                <td>$country</td>
                                <td>$state</td>
                                <td>$zip</td>
                                <td>$phone</td>
                            </tr>
                        </tbody>
                    </table>";
?>

这里的图片包含多行,但是这段代码只是获取单行

【问题讨论】:

您的echowhile 循环之外。把它移进去,它应该可以工作 【参考方案1】:

正在返回行,您只是因为逻辑错误而没有全部显示它们 - 您的 echo 在您的 while 循环结束之后,因此它只能访问创建的最后一组数据通过循环,它只运行一次。所有其他变量都已创建,但在下次循环运行时被覆盖,没有被用于任何事情。

在循环中简单地移动与&lt;tr&gt; 相呼应的位,以便它重复运行 - 每行一次。显然,您需要在循环结束后将与表的结束标记相呼应的位分开,并将tbody 的开头放在循环之前。

                    echo "<tbody>";

                    while ($row = mysqli_fetch_assoc($res)) 
                    
                        $id = $row["id"];
                        $address = $row["address"];
                        $city = $row["city"];
                        $country = $row["country"];
                        $state = $row["state"];
                        $zip = $row["zip"];
                        $phone = $row["phone"];

                        echo "
                            <tr>
                                <td> <input type='checkbox' name=''> </td>
                                <td>$id</td>
                                <td>$address</td>
                                <td>$city</td>
                                <td>$country</td>
                                <td>$state</td>
                                <td>$zip</td>
                                <td>$phone</td>
                            </tr>";
                    

                    echo "</tbody>
                      </table>";

【讨论】:

成功了!!非常感谢。

以上是关于为啥我的 php 代码没有从数据库中获取多行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从数据库中截断多行文本? (html/css/php)

为啥我的代码不会从一个 html 页面重定向到另一个页面?

为啥 echo 语句没有在我的 PHP 代码中生成任何内容?

为啥页面重定向在 php 中不起作用

用PHP重命名$ _FILES(文件)

数据表中的多选行,如何从JSON获取一列数据到php