我有两个while循环,但我只想调用一个.有可能吗


I have 2 while loops but i want to call only one. Is it possible?

我有一个表,它显示了数据库中两个不同表中的一些数据。我的脚本正在运行,但我对每个表都有调用2 while循环。我的问题是,两个表只能使用一个循环吗?谢谢大家!!!!!

<?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;
}
?>

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

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

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>";

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