foreach显示同一行的两次

时间:2016-01-12 11:00:19

标签: php

我不明白为什么foreach显示两次相同的行..

if(isset($_POST['idSalarie'])){ 
    $displayForm = $bdd->prepare(
                 'SELECT user_prenom, user_nom, poste_nom 
                  FROM USER 
                      INNER JOIN USER_POSTE_SERVICE ON USER.user_id= USER_POSTE_SERVICE.ups_poste_id  
                      INNER JOIN POSTE ON USER_POSTE_SERVICE. ups_poste_id = POSTE.poste_id 
                   WHERE user_id = :idSalarie 
                   ORDER BY user_nom ASC');
    $displayForm->bindParam(':idSalarie', $_POST['idSalarie']);
    $displayForm->execute();
    $resDisplayForm=$displayForm->fetch();
    foreach ($resDisplayForm as $key => $value) {
        echo '<input type="text" name="'.$key.'" value="'.$value.'"/>';
    }
}

更新: this is what the console displays

2 个答案:

答案 0 :(得分:4)

默认情况下,

fetch()使用FETCH_BOTH

  

PDO :: FETCH_BOTH(默认值):返回由结果集中返回的列名和0索引列号索引的数组。

尝试 -

$resDisplayForm=$displayForm->fetch(PDO::FETCH_ASSOC);

答案 1 :(得分:0)

 $resDisplayForm=$displayForm->fetch();

这个通常是FETCH_BOTH ......对于这种情况发生

FETCH_BOTH (默认值):返回由结果集中返回的列名和0索引列号索引的数组

你也从那里学习: -     http://php.net/manual/en/pdostatement.fetch.php

尝试FETCH_ASSOC

FETCH_ASSOC :返回按结果集中返回的列名索引的数组

尝试: -

$resDisplayForm=$displayForm->fetch(PDO::FETCH_ASSOC);