从所有行检索并显示它

时间:2014-09-28 14:36:14

标签: php mysql sql

$query = "SELECT * FROM main";

    if ($result = $db->query($query)) {

        while ($row = $result->fetch_assoc()) {
            $name= $row["name"];
            $image = $row["image"];


        }

    }

然后我的代码中的某处使用echo $ name打印出来;但我只得到一个结果,这是最后一行。我知道我必须做foreach但我应该放什么变量?

foreach($result as $results)?像这样?

2 个答案:

答案 0 :(得分:2)

在每次迭代中,您将值重新分配给$name$image,使其仅显示离开循环时的最后一个值。

您可以立即在循环中回显它们,或者使用它们填充数组或对象,以便稍后可用。

示例:

$data = array();
while ($row = $result->fetch_assoc()) {
    $data[] = array('name'=>$row["name"], 'image'=>$row["image"]); // push into the array
}

var_dump($data); // it's all here now

为了回应以后的数据,其中一种方法是foreach:

foreach($data as $row) {
    echo "Name: ", $row['name'], "; Image: ", $row['image];
}

答案 1 :(得分:0)

$query = "SELECT * FROM main";

$result = $db->query($query);
$row = $result->fetch_assoc();

foreach ($row as $rows) {
  echo $rows['name'] ." ". $rows['image'];
}