php pdo计算相同的列,只显示一行

时间:2014-02-12 10:56:58

标签: php mysql pdo

我有以下代码:

<?php
    $query = "SELECT * FROM penjualan";
    $stmt = $con->prepare( $query );
    $stmt->execute();
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)):
        extract($row);
?>
<?php echo $penjualan_kode;?>  
<?php endwhile;?>

输出看起来像这样

JL1202146
JL1202146
JL1202146
JL1202149
JL1202149

但我希望它是这样的:

JL1202146 (3)
JL1202149 (2)

我该怎么做? 或者你可以给我一个链接或其他东西,以便我可以学习?

更新1:

我在这里遇到了其他错误

  <?php
      $queryqq = "SELECT * FROM `penjualan`";
      $queryqq = "SELECT COUNT(penjualan_kode) AS hitung, penjualan_kode FROM penjualan GROUP BY penjualan_kode";
    $stmtq = $con->prepare( $queryqq );
    $stmtq->execute();
    $numq = $stmtq->rowCount();
    if($numq>0):
    while ($rowq = $stmtq->fetch(PDO::FETCH_ASSOC)):
    extract($rowq);
     @$z++;
  ?>
  <tr>
    <td>
        <?php echo $z;?>
    </td>
    <td>
        <code><?php echo $penjualan_kode;?></code>
    </td> 
    <td>
        <?php echo $penjualan_tgl;?> // here is line 50 in error
    </td>
    <td>
        <?php echo $hitung;?>
    </td>
    <td>
        <?php echo $z;?>
    </td>
  </tr> 
  <?php
    endwhile;
    endif;
  ?>

并且错误就像这样

  

注意:未定义的变量:第50行的/var/www/me/stok/penjualan.php中的penjualan_tgl

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以使用以下方式执行此操作:

SELECT COUNT(column_name) as column_count, column_name FROM penjualan GROUP BY column_name

我为你创建了一个SQL小提琴示例:

http://sqlfiddle.com/#!2/4f3938/1

我建议您阅读有关GROUP BY函数

的MySQL手册

https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html