Php Mysql中按字段过滤行

Php Mysql中按字段过滤行,php,if-statement,sql-update,multiple-columns,Php,If Statement,Sql Update,Multiple Columns,我想如果工作人员进入申请页面查看学生的申请列表。它将只查看apply_status='PENDING'的状态。以前已批准的状态将不会在页面中查看。 这是我的代码,如果只有apply_status='PENDING'将仅在页面中查看。。。我添加if-else语句。。。但它不起作用。如果存在多个应用状态=已批准。它不会显示待处理的一个。但如果没有应用,则状态=已批准。它将查看所有应用程序 <?php include("connection.php"); $sql="SELEC

我想如果工作人员进入申请页面查看学生的申请列表。它将只查看apply_status='PENDING'的状态。以前已批准的状态将不会在页面中查看。

这是我的代码,如果只有apply_status='PENDING'将仅在页面中查看。。。我添加if-else语句。。。但它不起作用。如果存在多个应用状态=已批准。它不会显示待处理的一个。但如果没有应用,则状态=已批准。它将查看所有应用程序

<?php
    include("connection.php");
    $sql="SELECT * FROM application";
    $record = mysqli_query($con, $sql) or die ("error".mysqli_error($con));
    $apply = mysqli_fetch_assoc($record);

    $status1 = $apply["apply_status"];

    if ($status1 == "APPROVED") {
        echo "<br>";
        echo "No application from student yet.<br>";
        echo "<br>";
    }

    else {

    echo "<table border='1'><tr>

    <td><strong>Student ID</strong></td>
    <td><strong>Student Name</strong></td>
    <td><strong>Kelompok</strong></td>
    <td><strong>Block</strong></td>
    <td><strong>Level</strong></td>
    <td><strong>House</strong></td>
    <td><strong>Status</strong></td>


    </tr>";
    $i=0;
    while ($ww=mysqli_fetch_array($query))
    {
        if ($i%2==0)
            $class="evenRow";
        else
            $class="oddRow";

        $id=$ww[0];
        $studentid=$ww[1];
        $name=$ww[2];
        $kelompok=$ww[8];
        $block=$ww[9];
        $level=$ww[10];
        $house=$ww[11];
        $status=$ww[14];



    echo '<tr>
        <input type="hidden" name="applyid['.$i.']" value="'.$id.'"/>
        <td>'.$studentid.'</td>
        <td>'.$name.'</td>
        <td>'.$kelompok.'</td>
        <td>'.$block.'</a></td>
        <td>'.$level.'</td>
        <td>'.$house.'</td>
        <td>
            <input type="checkbox" name="status['.$i.']" value="approved" checked> APPROVED <br>
        </td>
        </tr>'; 
    $i++;
    }

    echo '</table>';

    }
试试这个,
记住

$status1 = $apply["apply_status"];
应该是循环的一部分,可能有行包含它

    <?php
    include("connection.php");
    $sql="SELECT * FROM application";
    $record = mysqli_query($con, $sql) or die ("error".mysqli_error($con));
    $i=0;
    $number_of_rows = mysql_num_rows($record);

     if ($number_of_rows == 0) {
            echo "<br>";
            echo "No application from student yet.<br>";
            echo "<br>";
     } else {
      while ($ww=mysqli_fetch_array($record))
     {

    echo "<table border='1'><tr>

    <td><strong>Student ID</strong></td>
    <td><strong>Student Name</strong></td>
    <td><strong>Kelompok</strong></td>
    <td><strong>Block</strong></td>
    <td><strong>Level</strong></td>
    <td><strong>House</strong></td>
    <td><strong>Status</strong></td>


    </tr>";


        if ($i%2==0)
            $class="evenRow";
        else
            $class="oddRow";

        $id=$ww[0];
        $studentid=$ww[1];
        $name=$ww[2];
        $kelompok=$ww[8];
        $block=$ww[9];
        $level=$ww[10];
        $house=$ww[11];
        $status=$ww[14];



    echo '<tr>
        <input type="hidden" name="applyid['.$i.']" value="'.$id.'"/>
        <td>'.$studentid.'</td>
        <td>'.$name.'</td>
        <td>'.$kelompok.'</td>
        <td>'.$block.'</a></td>
        <td>'.$level.'</td>
        <td>'.$house.'</td>
        <td>
            <input type="checkbox" name="status['.$i.']" value="approved" checked> APPROVED <br>
        </td>
        </tr>'; 
    $i++;
    }

    echo '</table>';


   }
在您的代码中找不到“staff”条件

include("connection.php");

$sql="SELECT * FROM application";

if($staff){
$sql = $sql. " WHERE apply_status = 'PENDING'";
}else{
$sql = $sql. " WHERE apply_status = 'APPROVED'";
}

print\r($apply)并查看打印输出…非常感谢!!!它的工作!!但我的输出是这样的-->“还没有来自学生的应用程序。并显示应用的学生表\u status=pending”,它从if-else查看这两个结果。我的表格申请有两个学生,一个申请状态=已批准,另一个申请状态=待决。所以我想如果所有的申请状态=已批准,那么它将显示“还没有来自学生的申请”。但是,如果有另一个学生申请了_status=pending,它将只显示这个学生申请。我将直接限制查询$sql=“SELECT*FROM
application
”,其中
apply_status
=“pending”;然后,如果MYSQL\u num\u rows return>0,则显示行,否则显示“学生还没有申请。”