18910140161

html-在PHP中增加表项ID,同时循环并显示其他表项-堆栈溢出

顺晟科技

2022-10-19 13:09:56

188

我有一个带有MySQL数据库的azure PHP Web应用程序。

我需要访问数据库中的2个表,并循环访问每个条目,显示连接到每个ID的内容。

数据库设置:

驱动程序

<头>
DriverID Drivername
(AI)1 bob

OpenJobs

<头> jobdate等等等driver_fk
jobid jobname destination drivername_fk
(AI)1 作业1 星期一,9月1日 新西兰 blah blah (从驱动程序获取) (从驱动程序获取)

以下是我的代码: 我在别处也有一个连接。我还没有添加驱动程序名称的联接。

function openJobsList()
{
    $i = 4;

    global $conn;
    $query = mysqli_query($conn, "SELECT openjobs.jobName, openjobs.jobType, openjobs.orderNumber, openjobs.referenceNumber, openjobs.pallets, openjobs.jobWeight, openjobs.jobStatus, driver.DriverID, driver.driverName
                                    FROM openjobs
                                    INNER JOIN driver ON openjobs.driver_fk = driver.DriverID                                    
                                    WHERE driver.DriverID = $i");

    while ($row = mysqli_fetch_assoc($query)) {

        //$i++;

        $id = $row['DriverID'];
        //$driverName_fk = $row['driverName_fk'];
        $jobName = $row['jobName'];
        $jobType = $row['jobType'];
        $orderNumber = $row['orderNumber'];
        $referenceNumber = $row['referenceNumber'];
        $pallets = $row['pallets'];
        $jobWeight = $row['jobWeight'];
        $jobStatus = $row['jobStatus'];

        echo "<div class='card mainPageJobCard'>
                <div class='card-body'>
                    <div class='row justify-content-between'>
                        <div class='col-11'>
                            <h5 class='card-title'>Driver: {$id}</h5>
                        </div>
                        <div class='col-1'>
                            <a href='pages/webAddJob.php' class='btn btn-primary btn-sm text-light rounded-pill'>Add Job</a>
                        </div>
                    </div>
                    <div class='row'>
                        <div class='col pt-3'>
                            <table class='table table-bordered table-responsive'>
                                <thead>
                                 <tr class='table-light'>
                                        <th scope='col' class='col-2'>Job</th>
                                        <th scope='col'>Type</th>
                                        <th scope='col' class='col-2'>Order #</th>
                                        <th scope='col' class='col-2'>Reference</th>
                                        <th scope='col'>Pallets</th>
                                        <th scope='col'>Weight (kg)</th>
                                        <th scope='col' class='col-2'>Status</th>
                                    </tr>
                                </thead>

                                <tr>
                                    <th>{$jobName}</th>
                                    <td>{$jobType}</td>
                                    <td>{$orderNumber}</td>
                                    <td>{$referenceNumber}</td>
                                    <td>{$pallets}</td>
                                    <td>{$jobWeight}</td>
                                    <td>{$jobStatus}</td>
                                </tr>                                 
                            </table>
                        </div>
                    </div>
                </div>
            </div>";
        //$i++;
        $id++;
    }


}

到目前为止,我可以得到代码来吐出ID=4的数据条目(这是它们开始的地方,并从那里自动递增),但它只显示1个条目,后面没有任何条目。

我对PHP、azure和MySQL非常陌生,所以我也想听听其他清理代码的技巧。

该函数是在另一个php页面中调用的,该页面具有连接等,并且使用引导程序5。

问题已部分修复!

新问题:

附加到驱动程序的作业是单独打印的,而不是在驱动程序下全部打印。

运行内容的截图

是否需要另一个while循环来打印作业?


顺晟科技:

如果我理解正确的话,您的问题是,只显示ID为4的驱动程序的作业。您的循环看起来不错,所以我怀疑您的MySQL查询是问题所在,在该查询中,您显式搜索具有驱动程序的作业,该驱动程序是通过ID为4的。

您说,您还希望在它后面有条目,所以我建议更改该子句,查找ID至少为4的驱动程序,如下所示:

function openJobsList()
{
    $i = 4;

    global $conn;
    $query = mysqli_query($conn, "SELECT openjobs.jobName, openjobs.jobType, openjobs.orderNumber, openjobs.referenceNumber, openjobs.pallets, openjobs.jobWeight, openjobs.jobStatus, driver.DriverID, driver.driverName
                                    FROM openjobs
                                    INNER JOIN driver ON openjobs.driver_fk = driver.DriverID                                    
                                    WHERE driver.DriverID = $i");

    while ($row = mysqli_fetch_assoc($query)) {

        //$i++;

        $id = $row['DriverID'];
        //$driverName_fk = $row['driverName_fk'];
        $jobName = $row['jobName'];
        $jobType = $row['jobType'];
        $orderNumber = $row['orderNumber'];
        $referenceNumber = $row['referenceNumber'];
        $pallets = $row['pallets'];
        $jobWeight = $row['jobWeight'];
        $jobStatus = $row['jobStatus'];

        echo "<div class='card mainPageJobCard'>
                <div class='card-body'>
                    <div class='row justify-content-between'>
                        <div class='col-11'>
                            <h5 class='card-title'>Driver: {$id}</h5>
                        </div>
                        <div class='col-1'>
                            <a href='pages/webAddJob.php' class='btn btn-primary btn-sm text-light rounded-pill'>Add Job</a>
                        </div>
                    </div>
                    <div class='row'>
                        <div class='col pt-3'>
                            <table class='table table-bordered table-responsive'>
                                <thead>
                                 <tr class='table-light'>
                                        <th scope='col' class='col-2'>Job</th>
                                        <th scope='col'>Type</th>
                                        <th scope='col' class='col-2'>Order #</th>
                                        <th scope='col' class='col-2'>Reference</th>
                                        <th scope='col'>Pallets</th>
                                        <th scope='col'>Weight (kg)</th>
                                        <th scope='col' class='col-2'>Status</th>
                                    </tr>
                                </thead>

                                <tr>
                                    <th>{$jobName}</th>
                                    <td>{$jobType}</td>
                                    <td>{$orderNumber}</td>
                                    <td>{$referenceNumber}</td>
                                    <td>{$pallets}</td>
                                    <td>{$jobWeight}</td>
                                    <td>{$jobStatus}</td>
                                </tr>                                 
                            </table>
                        </div>
                    </div>
                </div>
            </div>";
        //$i++;
        $id++;
    }


}

或者,您可以将检查全部删除,以获得附加到驱动程序的所有作业和相应的驱动程序:

function openJobsList()
{
    $i = 4;

    global $conn;
    $query = mysqli_query($conn, "SELECT openjobs.jobName, openjobs.jobType, openjobs.orderNumber, openjobs.referenceNumber, openjobs.pallets, openjobs.jobWeight, openjobs.jobStatus, driver.DriverID, driver.driverName
                                    FROM openjobs
                                    INNER JOIN driver ON openjobs.driver_fk = driver.DriverID                                    
                                    WHERE driver.DriverID = $i");

    while ($row = mysqli_fetch_assoc($query)) {

        //$i++;

        $id = $row['DriverID'];
        //$driverName_fk = $row['driverName_fk'];
        $jobName = $row['jobName'];
        $jobType = $row['jobType'];
        $orderNumber = $row['orderNumber'];
        $referenceNumber = $row['referenceNumber'];
        $pallets = $row['pallets'];
        $jobWeight = $row['jobWeight'];
        $jobStatus = $row['jobStatus'];

        echo "<div class='card mainPageJobCard'>
                <div class='card-body'>
                    <div class='row justify-content-between'>
                        <div class='col-11'>
                            <h5 class='card-title'>Driver: {$id}</h5>
                        </div>
                        <div class='col-1'>
                            <a href='pages/webAddJob.php' class='btn btn-primary btn-sm text-light rounded-pill'>Add Job</a>
                        </div>
                    </div>
                    <div class='row'>
                        <div class='col pt-3'>
                            <table class='table table-bordered table-responsive'>
                                <thead>
                                 <tr class='table-light'>
                                        <th scope='col' class='col-2'>Job</th>
                                        <th scope='col'>Type</th>
                                        <th scope='col' class='col-2'>Order #</th>
                                        <th scope='col' class='col-2'>Reference</th>
                                        <th scope='col'>Pallets</th>
                                        <th scope='col'>Weight (kg)</th>
                                        <th scope='col' class='col-2'>Status</th>
                                    </tr>
                                </thead>

                                <tr>
                                    <th>{$jobName}</th>
                                    <td>{$jobType}</td>
                                    <td>{$orderNumber}</td>
                                    <td>{$referenceNumber}</td>
                                    <td>{$pallets}</td>
                                    <td>{$jobWeight}</td>
                                    <td>{$jobStatus}</td>
                                </tr>                                 
                            </table>
                        </div>
                    </div>
                </div>
            </div>";
        //$i++;
        $id++;
    }


}
  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航