MySQL没有获取所有结果

时间:2017-11-08 09:07:53

标签: php mysql

尝试从PHP数据库中获取MySQL中的所有结果,但它将离开第一个查询。

我的MySQL表格如下图所示:image

我的代码:

<?php
    $irn = "33857";
    $stmt = $user_home->runQuery('SELECT * FROM invoice WHERE Inv = :inv ORDER BY Sr ASC ');
    $stmt->bindParam(':inv',$irn);
    $stmt->execute();
    $rowc = $stmt->fetch(PDO::FETCH_ASSOC); 
    if($stmt->rowCount() > 0)
    {
    ?>
<table id="chiru_inv" class="table table-striped table-hover table-bordered table-responsive">
   <tr>
    <td colspan="4" align="center">
      <h1>Company</br><span style="font-size: 75%;">Number</span></h1>
    </td>
  </tr>
  <tr>
    <td colspan="2">
      <h3><span style="float: left;"><?php echo $rowc['Customer']; ?>&nbsp;(<?php echo $rowc['Inv']; ?>)</span></h3>
    </td>
    <td colspan="2">
      <h3><span style="float: right;"><?php echo $rowc['Date']; ?></span></h3>
    </td>
  </tr>
  <tr>
    <th>Sr.</th>
    <th>Item</th>
    <th>Qty</th>
    <th>Amount</th>
  </tr>
    <?php
    $i = 0;
        while($row=$stmt->fetch(PDO::FETCH_ASSOC))
        {
            extract($row);
            $i++;

?>

    <tr>
      <td><?php echo $i; ?></td>
      <td><?php echo $Item; ?></td>
      <td>5</td>
      <td>200</td>
    </tr>

            <?php
        }
        ?>

    <tr>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="2"><strong><?php echo getIndianCurrency(225); ?>Only</strong></td>
      <td><strong>Total:</strong></td>
      <td><strong>225</strong></td>
    </tr>

</table>
        <?php
    }
?>

执行上述代码时的结果如下图所示:image

三个查询invoice 33857 ,但只显示两个(留下第一个<!strong)!< / p>

我需要按照invoice号显示所有内容。

请帮我整理出的错误/代码或我离开。

1 个答案:

答案 0 :(得分:1)

代码中的问题在于:

$rowc = $stmt->fetch(PDO::FETCH_ASSOC); 

在代码的开头,您将获取第一行。

你必须像这样更新你的while循环

<?php
    $i = 0;
        while($rowc)
        {
            extract($rowc);
            $i++;

?>

<!-- Your HTML/PHP code for the table -->

<?php 
           $rowc=$stmt->fetch(PDO::FETCH_ASSOC);
        }
?>

所以,我们的想法是在while循环结束时获取行,以免丢失第一行。