我有2个while循环,但我想只打一个。有可能吗?

时间:2015-12-23 09:09:25

标签: php mysql

我有一个表,显示数据库中2个不同表的一些数据。我的脚本正在运行,但我为每个表调用了2个循环。我的问题是,我可以只为这两个表使用一个循环吗?谢谢所有!!!!!

<?php
    if(isset($_POST['check'])) {
        $kontata_gas = "select id, supervizori, crt_gas, operatori, data, status, nome, cognome, tel, pdr, codice_fiscale from kontrata_gas where (data between '$data_e_inserimit' and '$data_e_inserimit_2' or tel='$tel' or codice_fiscale='$fiscale' or pdr='$POD_PDR')";
        $result_kontata_gas = mysqli_query($dbCon, $kontata_gas);
        if(!$result_kontata_gas) {
            die("Error1");
        }

        $kontata_luce = "select id, supervizori, crt_luce, operatori, data, status, nome, cognome, tel, pod, codice_fiscale from kontrata_luce where (data between '$data_e_inserimit' and '$data_e_inserimit_2' or tel='$tel' or codice_fiscale='$fiscale' or pod='$POD_PDR')";
        $result_kontata_luce = mysqli_query($dbCon, $kontata_luce);
        if(!$result_kontata_luce) {
            die("Error2");
        }   

    echo "<table style='width:auto;'>
        <tr>
        <td>ID</td>
        <td>TIPO CONTRATTO</td>
        <td>OPERATOR</td>
        <td>DATA</td>
        <td>STATUS</td>
        <td>NOME</td>
        <td>COGNOME</td>
        <td>TEL</td>
        <td>PDR / POD</td>
        </tr>";
    while ($row = mysqli_fetch_assoc($result_kontata_gas)) { //first loop
        $id = $row['id'];
        echo "<tr>
            <td>"."<a href='main.php?backoffice=&mod_contratto=gas_$id'><img id='img' src='images/modify.png'></a>".$row['id']."</td>
            <td>".$row['crt_gas']."</td>
            <td>".$row['operatori']."</td>
            <td>".$row['data']."</td>
            <td>".$row['status']."</td>
            <td>".$row['nome']."</td>
            <td>".$row['cognome']."</td>
            <td>".$row['tel']."</td>
            <td>".$row['pdr']."</td>
            </tr>";
            $id++;
    }
        "<tr>
        <td>ID</td>
        <td>TIPO CONTRATTO</td>
        <td>OPERATOR</td>
        <td>DATA</td>
        <td>STATUS</td>
        <td>NOME</td>
        <td>COGNOME</td>
        <td>TEL</td>
        <td>PDR / POD</td>
        </tr>";
    while ($row = mysqli_fetch_assoc($result_kontata_luce)) { // second loop
        $id = $row['id'];
        $luce = $row['crt_luce'];
        echo "<tr>
            <td>"."<a href='main.php?backoffice=&mod_contratto=luce_$id'><img id='img' src='images/modify.png'></a>".$row['id']."</td>
            <td>".$row['crt_luce']."</td>
            <td>".$row['operatori']."</td>
            <td>".$row['data']."</td>
            <td>".$row['status']."</td>
            <td>".$row['nome']."</td>
            <td>".$row['cognome']."</td>
            <td>".$row['tel']."</td>
            <td>".$row['pod']."</td>
            </tr>";
            $id++;
    }

        echo "</table>";
        $_SESSION['$id'] = @$id;
        $_SESSION['$gas'] = @$gas;
        $_SESSION['$luce'] = @$luce;
}
?>

2 个答案:

答案 0 :(得分:1)

不确定,因为你只显示了一个sql查询,但是你可以使用union(http://dev.mysql.com/doc/refman/5.7/en/union.html)来组合两个sql查询。

答案 1 :(得分:0)

如果两个数组都有相同的字段,您可以创建一个函数将数组传递给数组并返回(或打印)表。

printTable($result_kontata_gas);
printTable($result_kontata_luce);

function printTable($array) {
    echo "<table style='width:auto;'>
        <tr>
        <td>ID</td>
        <td>TIPO CONTRATTO</td>
        <td>OPERATOR</td>
        <td>DATA</td>
        <td>STATUS</td>
        <td>NOME</td>
        <td>COGNOME</td>
        <td>TEL</td>
        <td>PDR / POD</td>
        </tr>";
    while ($row = mysqli_fetch_assoc($array)) { //first loop
        $id = $row['id'];
        echo "<tr>
            <td>"."<a href='main.php?backoffice=&mod_contratto=gas_$id'><img id='img' src='images/modify.png'></a>".$row['id']."</td>
            <td>".$row['crt_gas']."</td>
            <td>".$row['operatori']."</td>
            <td>".$row['data']."</td>
            <td>".$row['status']."</td>
            <td>".$row['nome']."</td>
            <td>".$row['cognome']."</td>
            <td>".$row['tel']."</td>
            <td>".$row['pdr']."</td>
            </tr>";
            $id++;
    }

    echo "</table>";

或者你可以创建一个函数并返回已经获取的数组,并为每个表创建一个不同的变量,并在它们中连接自己的数组信息。