9

应该很基本,但我无法让它工作。我有这个代码来迭代一个 mysqli 查询:

while($row = mysqli_fetch_array($result)) {
    $posts[] = $row['post_id'].$row['post_title'].$row['content'];
}

它工作并返回:

变量 #1:(数组,3 个元素)↵ 0(字符串):“4testtest”(9 个字符)1(字符串):“1Hello world!欢迎使用 WordPress。这是您的第一篇文章。编辑或删除它,然后开始写博客!” (99 个字符)2(字符串):“2Sample Page这是一个示例页面。它与博客文章不同,因为它将保留在一个位置并显示在您的网站导航中(在大多数主题中)。” (161 个字符)

问题是它将所有三个列放在一列中,因此我无法单独访问它们。

例如:

0(字符串):“4testtest”(9 个字符)

应该分成4、测试、测试

当我这样做时:

while($row = mysqli_fetch_array($result)) {             
    $posts['post_id'] = $row['post_id'];
    $posts['post_title'] = $row['post_title'];
    $posts['type'] = $row['type'];
    $posts['author'] = $row['author'];  
}   

它只输出 1 行而不是全部 3 行……</p>

任何帮助是极大的赞赏!

4

6 回答 6

29

从 MySQL 获取所有值:

    $post = array();
    while($row = mysql_fetch_assoc($result))
    {
        $posts[] = $row;
    }

然后,获取每个值:

<?php 
     foreach ($posts as $row) 
        { 
            foreach ($row as $element)
            {
                echo $element."<br>";
            }
        }
?>

回显这些值。或者从 $post 变量中获取每个元素

于 2013-01-22T10:41:28.210 回答
7

这是您的解决方案。

$x = 0;
while($row = mysqli_fetch_array($result)) {             
    $posts[$x]['post_id'] = $row['post_id'];
    $posts[$x]['post_title'] = $row['post_title'];
    $posts[$x]['type'] = $row['type'];
    $posts[$x]['author'] = $row['author'];
    $x++;
}
于 2016-02-26T12:29:39.080 回答
5

我认为这将是一种更简单的输出结果的方式。

抱歉使用我自己的数据应该很容易替换。

$query = "SELECT * FROM category ";

$result = mysqli_query($connection, $query);


    while($row = mysqli_fetch_assoc($result))
    {
        $cat_id = $row['cat_id'];
        $cat_title = $row['cat_title'];

        echo $cat_id . " " . $cat_title  ."<br>";
    }

这将输出:

  • -身份证标题
  • -1 加里
  • -2 约翰
  • -3 迈克尔斯
于 2016-02-01T10:35:13.260 回答
1

两者都将在 while 循环中的mysqli_fetch_array中完美运行

while($row = mysqli_fetch_array($result,MYSQLI_BOTH)) {
    $posts[] = $row['post_id'].$row['post_title'].$row['content'];
}

(或者)

while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
    $posts[] = $row['post_id'].$row['post_title'].$row['content'];
}

mysqli_fetch_array() - 有第二个参数 $resulttype。

MYSQLI_ASSOC:获取关联数组

MYSQLI_NUM:获取数值数组

MYSQLI_BOTH:同时获取关联数组和数值数组。

于 2017-02-13T10:46:44.357 回答
-2

试试这个 :

   $i = 0;    
    while($row = mysqli_fetch_array($result)) {  

            $posts['post_id'] = $row[$i]['post_id'];
            $posts['post_title'] = $row[$i]['post_title'];
            $posts['type'] = $row[$i]['type'];
            $posts['author'] = $row[$i]['author'];  

        }   
    $i++;
    }

print_r($posts);
于 2013-01-22T10:41:47.410 回答
-3

试试这个...

while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
于 2015-10-28T22:50:05.037 回答