MySQL PDO Fetchall不显示所有行

时间:2018-02-24 10:52:00

标签: php mysql pdo

使用

显示数据库中的所有行时出现问题
foreach($resut as $row) { echo $row['naam']; }

它只显示1行,而有2行。

我该如何解决这个问题?

代码:

<?php
include('db/configuratie.php');

$key = $_GET['key'];


$validkey = array("Test123");

if (empty($key)){
  die('Geen toengansleutel opgegeven');
}


if (in_array($_GET['key'], $validkey)){

 $getrow = $database -> prepare("SELECT * FROM `contact`");
 $getrow -> execute();

 $result = $getrow -> fetchAll();

  foreach($result as $row){

    $naam = $row['naam'];


  }

  echo $naam;

}
else{
  die('Ongeldige toengangsleutel opgegeven.');

  //sla deze pogin op?
}
 ?>

4 个答案:

答案 0 :(得分:2)

您在每个循环中覆盖$naam

要立即回复它,您可以使用:

foreach($result as $row){
    $naam = $row['naam'];
    echo $naam;
}

如果你只想回复naam而不将其保存到变量中,你可以这样做:

echo $row['naam'];

作为旁注,你的意思是&#34; toegangsleutel&#34;在die声明中?

答案 1 :(得分:1)

您要覆盖每行$naam变量,因此echo只是最后一行。

foreach($result as $row){
  $naam = $row['naam'];
  echo $naam;
}

或:

$naam = [] ;
foreach($result as $row){
  $naam[] = $row['naam'];
}
print_r($naam);

答案 2 :(得分:0)

您在循环后打印$naam;。你应该把它放在循环中。如下。

foreach($result as $row){
    $naam = $row['naam'];
    echo $naam;
  }

答案 3 :(得分:0)

你的echo $ naam应该在foreach循环中。

类似

<?php
include('db/configuratie.php');

$key = $_GET['key'];


$validkey = array("Test123");

if (empty($key)){
  die('Geen toengansleutel opgegeven');
}


if (in_array($_GET['key'], $validkey)){

 $getrow = $database -> prepare("SELECT * FROM `contact`");
 $getrow -> execute();

 $result = $getrow -> fetchAll();

  foreach($result as $row){

    $naam = $row['naam'];
    echo $naam;

  }



}
else{
  die('Ongeldige toengangsleutel opgegeven.');

  //sla deze pogin op?
}
 ?>

或者

foreach($result as $row){

    echo $row['naam'];

  }

为什么要将它分配给变量?也许你需要它在我认为的其他地方