如何在php中加入2个表并在for循环中显示数据?

时间:2018-01-08 08:54:03

标签: php mysql for-loop

我有两张表invoice_ininvoice_out。 在这两个表中,我分别有datetrad_idnetvattotal列。 我正在为这两个表分享我的图像。

我关心的是以表格格式显示月份数据。如果我想要来自两个表的数据,那么如何为此循环写入。在我当前的代码中,我只从一个表中获取数据。所以它以正确的方式出现。

  

SELECT SUM(总计)FROM invoice_out GROUP BY YEAR(日期),MONTH(日期)。   这是我当前的查询,只显示一个表中的数据。

以下是我的功能:

public function get_all_data_for_vat($table)
{                
    $table = self::get_table_name($table);
    $con = $this->__construct();
    $sql="SELECT SUM(total) FROM invoice_out GROUP BY YEAR(date), MONTH(date)";
    $execute = mysqli_query($con, $sql);
    $rows = mysqli_num_rows($execute);
    $data=mysqli_fetch_all($execute);
    return $data;
}

$data1=$obj->get_all_data_for_vat('invoice_out',$_SESSION['trade_id']); 



<tbody>                                                                    
    <?php for($i=0;$i<count($data2);$i++){                         
     ?>
        <tr class="gradeA">
            <td><?php echo $data2[$i][1];?></td>
            <td><?php echo 'Monthly';?></td>
            <td><?php echo $data2[$i][4];?></td>
            <td class="center"><?php echo $data2[$i][5];?></td>
            <td class="center"><?php echo $data2[$i][6];?></td>
            <?php if($_SESSION['roll']!=1){?>
                <td class="center bg_ls"><a href="add_VAT.php?id=<?php echo $data[$i][0];?>" onclick="randomid();" style="color:white;">Edit</a></td>
                <script type="text/javascript">
                    function randomid(){
                        $.ajax({
                            type: "POST",
                            url: 'add_paye.php',
                            data: ({id:"test123<?php //echo $obj->encrypt($data[0]);?>"}),
                            success: function(data) {
                                //alert(data);
                            }
                        });
                    }
                </script>
            <?php }?>   
        </tr>
    <?php }?>
</tbody>

在for循环中,我能够从一个表中显示我的数据。它适合我。 但我也希望从total表中显示invoice_in。因为我正在编写这个不起作用的查询。

SELECT io.trad_id , io.date , io.billing_com, 
        io.total, in.trad_id, in.date, in.billing_com, in.total 
FROM invoice_out io
INNER JOIN invoice_in in
    ON invoice_in.trad_id = invoice_out.trad_id

enter image description here

enter image description here

我的第一张图片显示来自invoice_in表的数据。 我的第二张图片显示来自invoice_out表的数据。

1 个答案:

答案 0 :(得分:1)

SELECT io.trad_id , io.date , io.billing_com,
io.total, invoice.trad_id, invoice.date, invoice.billing_com, invoice.total 
FROM invoice_out io
LEFT JOIN invoice_in invoice
ON invoice_in.trad_id = invoice_out.trad_id