Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysqli_fetch_assoc($result)不显示所有结果_Php_Html_Mysql_Mysqli - Fatal编程技术网

Php mysqli_fetch_assoc($result)不显示所有结果

Php mysqli_fetch_assoc($result)不显示所有结果,php,html,mysql,mysqli,Php,Html,Mysql,Mysqli,我试图使用下面的php代码访问我的查询表。目前我的mysql数据库中有两个条目。我试图使用mysqli_fetch_assoc将表中的所有条目打印到我的网页中,但我尝试的所有方法都是打印第二个条目,而不是第一个条目。当我使用while循环while($row=mysqli\u fetch\u assoc($result)时,它会打印第二个条目,而不是两个条目;它将打印第一个条目,而第二个条目未打印。我是php新手,正在尝试学习如何将数据库中的所有条目打印到php页面上,我不明白我做错了什么。任何

我试图使用下面的php代码访问我的查询表。目前我的mysql数据库中有两个条目。我试图使用mysqli_fetch_assoc将表中的所有条目打印到我的网页中,但我尝试的所有方法都是打印第二个条目,而不是第一个条目。当我使用while循环while($row=mysqli\u fetch\u assoc($result)时,它会打印第二个条目,而不是两个条目;它将打印第一个条目,而第二个条目未打印。我是php新手,正在尝试学习如何将数据库中的所有条目打印到php页面上,我不明白我做错了什么。任何帮助都将非常好!谢谢

$sql = 'SELECT * FROM myTable ORDER BY created_at';
$result = mysqli_query($conn, $sql);
$posts = mysqli_fetch_assoc($result);
while($row = mysqli_fetch_assoc($result)){
    print_r($row); 
}
//if I do this I see the first entry title only
echo 'testing title: '. $posts['title'];

mysqli_free_result($result);
mysqli_close($conn);
输出:

Array ( [id] => 2 [title] => SecondTitle [content] => Lorem ipsum dolor sit amet, consectetur 
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. [created_at] => 
2020-07-17 12:32:04 ) testing title: First Title
打印输出($posts):

在标签中:

<div class="row">
    <?php foreach ($posts as $post): ?>
        <div>
            <h1><?php echo $post['title'] ?></h1>
            <h3><?php echo $post['created_at'] ?></h3>
            <p> <?php echo $post['content'] ?></p>
        </div>
    <?php endforeach; ?>
</div>
不确定这些信息是否有用,但如果我使用mysqli_fetch_all而不是mysqli_fetch_assoc,则文件会崩溃,不确定是否与数据库或其他内容有关。PHP版本7.3.6

$posts = mysqli_fetch_all($result, MYSQLI_ASSOC);

每次调用mysqli_fetch_assoc()的mysqli结果,都会返回下一个结果行的assoc数组。 例如: 您有一个名为user的表,该表有3条记录:

id          name

1           Mark
2           Sebastian
3           Smith
选择所有这些记录后:

$result = mysqli_query("SELECT * FROM user");
第一次获取将返回第一个结果行的assoc数组

$posts = mysqli_fetch_assoc($result);
// $posts["id] = 1 -- $posts["id] = "Mark"
$result的mysqli_fetch_assoc的seconde调用将返回seconde结果行的assoc数组:

$posts = mysqli_fetch_assoc($result);
    // $posts["id] = 2 -- $posts["id] = "Sebastian"
因此,每次调用都将返回下一个结果行,直到没有记录为止,函数将返回null

因此,如果您希望您的代码能够正常工作,我建议您删除第一个mysqli_fetch_assoc,并将其从while循环中调用:

// delete this line
$posts = mysqli_fetch_assoc($result);

这回答了你的问题吗?谢谢你的澄清我完全不知道我做错了什么!
$posts = mysqli_fetch_assoc($result);
    // $posts["id] = 2 -- $posts["id] = "Sebastian"
// delete this line
$posts = mysqli_fetch_assoc($result);