mysqli_fetch_array while循环列

时间:2013-01-22 10:34:57

标签: php mysqli while-loop multiple-columns

应该是非常基本的,但我无法让它发挥作用。我有这个代码来迭代mysqli查询:

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

它起作用并返回:

  

变量#1 :(数组,3个元素)↵        0(字符串):“4testtest”(9个字符)        1(String):“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行而不是全部三行......

非常感谢任何帮助!

6 个答案:

答案 0 :(得分:18)

从MySQL获取所有值:

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

然后,获取每个值:

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

回应价值观。或者从$ post变量中获取每个元素

答案 1 :(得分:3)

我认为这是输出结果的更简单方法。

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

$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>";
    }

这将输出:

  • - ID标题
  • -1 Gary
  • -2 John
  • -3 Michaels

答案 2 :(得分:2)

这是你的解决方案。

$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++;
}

答案 3 :(得分:-1)

两者都可以在while循环 mysqli_fetch_array 中完美地运行

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

(OR)

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:同时获取关联数组和数字数组。

答案 4 :(得分:-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);

答案 5 :(得分:-3)

试试这个......

while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {