使用PDO选择查询不会显示表中的所有数据

时间:2015-10-29 07:53:30

标签: php mysql pdo

我试图使用PDO在表格中显示数据库中的数据。但记录没有显示。我不知道我的代码有什么问题。

这是html代码:

<table border=15 style='font-size:0.6em;' id='result'>
  <tr>
    <th>ISSUE TYPE</th>
    <th>CREATION DATE</th>
    <th>SITE</th>
    <th>VENDOR NAME</th>
    <th>INVOICE DATE</th>
    <th>INVOICE NUMBER</th>
    <th>PART NUMBER</th>
    <th>PO</th>
    <th>RR</th>
    <th>CURRENCY</th>
    <th>INVOICE AMOUNT</th>
    <th>ISSUES</th>
    <th>PERSON IN CHARGE</th>
    <th>PIC COMMENTS</th>
    <th>STATUS</th>
    <th>&nbsp;</th>
  </tr>

这是我的PHP代码,用于在表格中显示数据:

<?php 

$invtxt = $_POST['InvNumbTxt'];
$dbh=db_connect();         
$sql="SELECT * FROM invalid_invoice";
$stmt=$dbh->prepare($sql);  
$stmt->execute();

while($row = $stmt>fetchAll(PDO::FETCH_ASSOC)) { 

  echo"<form name='update' method='POST'><tr class=output2>";
  echo "<td>$row[1]</td>";
  echo "<td>$row[2]</td>";
  echo "<td>$row[3]</td>";
  echo "<td>$row[4]</td>";
  echo "<td>$row[5]</td>";
  echo "<td>$row[6]</td>";
  echo "<td>$row[7]</td>";
  echo "<td>$row[8]</td>";
  echo "<td>$row[9]</td>";
  echo "<td>$row[10]</td>";
  echo "<td>$row[11]</td>";
  echo "<td>$row[12]</td>";
  echo "<td><input type='text' name='pic' value='$row[17]'></td>";
  echo "<td><input type='text' name='comt' value='$row[18]'></td>";
  echo "<td><input type='text' name='stat' value='$row[19]'></td>";
  echo "<td><input type='submit' name='save_btn' value='&diams; SAVE &diams;' style='font-size:1em;'/></td>";
  echo "<td><input type='hidden' name='idtxt' value='$row[0]'/></td>";
  echo "</tr></form>"; 
} 
$dbh=null;

?>
</table>

2 个答案:

答案 0 :(得分:1)

更改此行:

while($row = $stmt>fetchAll(PDO::FETCH_ASSOC)) { 

为:

while($row = $stmt>fetch(PDO::FETCH_ASSOC)) { 

PDO声明的fetchall方法按照它在锡上的说法执行,它在一次点击中抓取整个结果集。 PDO Statement的获取方法只是抓取结果集的下一行。

答案 1 :(得分:0)

您也有类型错误,

更改此

while($row = $stmt>fetchAll(PDO::FETCH_ASSOC)) {

while($row = $stmt->fetchAll(PDO::FETCH_ASSOC)) {

修改您的while循环,如下所示

<form>值不应该在循环内。

    echo"<form name='update' method='POST'>";

    while($row = $stmt->fetchAll(PDO::FETCH_ASSOC)) { 

    echo "<tr class=output2>";
    echo "<td>".$row[1]."</td>";
    echo "<td>".$row[2]."</td>";
    echo "<td>".$row[3]."</td>";
    echo "<td>".$row[4]."</td>";
    echo "<td>".$row[5]."</td>";
    echo "<td>".$row[6]."</td>";
    echo "<td>".$row[7]."</td>";
    echo "<td>".$row[8]."</td>";
    echo "<td>".$row[9]."</td>";
    echo "<td>".$row[10]."</td>";
    echo "<td>".$row[11]."</td>";
    echo "<td>".$row[12]."</td>";
    echo "<td><input type='text' name='pic' value='".$row[12]."'></td>";
    echo "<td><input type='text' name='comt' value='".$row[18]."'></td>";
    echo "<td><input type='text' name='stat' value='".$row[19]."'></td>";
    echo "<td><input type='submit' name='save_btn' value='&diams; SAVE &diams;' style='font-size:1em;'/></td>";
    echo "<td><input type='hidden' name='idtxt' value='".$row[0]."'/></td>";
    echo "</tr>"; 
    } 
    echo '</form>';
    $dbh=null;

?>
</table>