如何在sql中打印多个数据

Posted

技术标签:

【中文标题】如何在sql中打印多个数据【英文标题】:how can i print multiple data in sql 【发布时间】:2015-12-09 10:27:16 【问题描述】:

我可以在对两个或更多表运行查询后打印一组数据吗?

这是来自我的两个查询表:

第一个查询

$query = mysql_query("SELECT id, BuyerName,BuyerEmail,BuyerAddress,TransactionID,
        ItemAmount,DateTime FROM `order` WHERE YEAR(DateTime)= 
       '$Year'AND MONTH(DateTime) = '$Month' LIMIT $start, $per_page")
         or die(mysql_error());

第二次查询

$querydetail = mysql_query("SELECT * FROM orderlist WHERE TransactionID  = '$f4'");

是否可以通过使用 table 以在 php 中设置的方式打印它?

这就是我以表格格式显示数据的方式。有没有办法将此输出直接导入 Microsoft Word 或 A4 纸格式的文件?

 <?php  
    while($row = mysql_fetch_array($query))
      
              
    $f1 = $row['BuyerName'];
    $f2 = $row['BuyerEmail'];
    $f3 = $row['BuyerAddress'];
    $f4 = $row['TransactionID'];
    $f5 = $row['ItemAmount'];
    $f6 = $row['DateTime'];
	
	
  ?>
  <table class="table">
     <tr>
      <th>Nama Pelanggan</th>
      <th>Email Pelanggan</th>
      <th>Alamat Pelanggan</th>
      <th>ID Transaksi</th>
      <th>Harga</th>
      <th>Tarikh</th>
	  
   <tr>
    <td><?php echo $f1 ?></td>
    <td><?php echo $f2 ?></td>
    <td><?php echo $f3 ?></td>
    <td><?php echo $f4 ?></td>
    <td><?php echo $f5 ?></td>
    <td><?php echo $f6 ?></td>

   </tr>
   <table class="table">
     <tr>
      <th>Nama Barang</th>
      <th>Kod Barang</th>
      <th>Kuantiti</th>
      
	  
	  
     </tr>
   <?php
	$querydetail = mysql_query("SELECT * FROM orderlist WHERE TransactionID  = '$f4'");
	while($rows = mysql_fetch_array($querydetail))
      
              
    $fd1 = $rows['ItemName'];
    $fd2 = $rows['ItemNumber'];
    $fd3 = $rows['ItemQTY'];
	?>
<tr>
    <td><?php echo $fd1 ?></td>
    <td><?php echo $fd2 ?></td>
    <td><?php echo $fd3 ?></td>
</tr>

【问题讨论】:

您确定没有收到任何错误/意外结果吗?因为我看到了其中一些。 像魅力一样工作:D只需要添加打印功能 所以&lt;td&gt;&lt;?php echo $f1 ?&gt;&lt;/td&gt; 不需要在; 后面加上$f1 好吧,刚刚在阅读您的评论后再次尝试,仍然很好。 【参考方案1】:

如果您不保存第一个查询的结果,例如在一个变量中,它会在下一个执行时丢失。执行查询后立即获取查询结果,将它们存储在数组中,并在获得下一步所需的所有可用数据后立即使用它们,例如将它们打印出来。这是你问的吗?

顺便说一句。不要再使用mysql_query,它将在未来的php版本中被删除,并且可能使您的代码容易受到sql注入攻击。使用 PDO 或 mysli 进行数据库工作要安全得多。

编辑 要从 PHP 创建 Word 文档,请查看 this question。

或者您可以省略 html 标记,使用合适的分隔符分隔列(例如,如果您的数据中不使用分号,则使用分号)

<?php $delimiter = ";"; ?>
...
<?php echo $f1 . $delimiter ?>

而不是

<td><?php echo $f1 ?></td>

并导入 Excel 或 OpenOffice Calc。这是使用 CSV mime 类型输出到download 而不是浏览器输出的解决方案。

或者你可以例如使用FPDF 创建 PDF 文件。

【讨论】:

这只是我的fyp,懒得改成mysqli了。顺便说一句,我已经将结果保存在一个变量中,你能告诉我打印它的源代码吗? 啊,现在我明白了。你的意思是实际打印在纸上,对吧?对于直接输出到 word 或在表格 excel 的情况下,我猜最简单的方法是从浏览器复制粘贴。或者只是从浏览器打印... 哈哈哈,这就是为什么我处于两难境地,我在网上搜索,我得到的都是它的 echo print_r 和 blablabla...需要一个软拷贝。这是我最后一年的项目,所以使用复制粘贴打印报告并不实用。我需要一个内置函数来这样做 有没有更简单的方法来获得这个?我完全失去了已经阅读了你给我的链接及其复杂性。从来没有为 php 使用过 3rd 方 @MohdFadli 你可以看看 phpexcel 库。您还应该从相同的用户那里找到一个 php 到词库。它有据可查,很容易将您的 html 转换为 office doc。 Ps MySQL_* 函数在下一个 php 版本中被弃用和删除!请转向MySQL!!!

以上是关于如何在sql中打印多个数据的主要内容,如果未能解决你的问题,请参考以下文章

请教如何在Report Builder 中设置多个参数

如何在 Python 中使用 Pretty Table 打印多个列表中的数据?

如何在 Java 中打印多个变量行

如何在 Swift 的单个打印语句中打印多个对象?

如何在QR码中打印由行分隔的多个数据? [重复]

如何在...循环中从动态列表中打印多个值