Php Mysql中按字段过滤行
我想如果工作人员进入申请页面查看学生的申请列表。它将只查看apply_status='PENDING'的状态。以前已批准的状态将不会在页面中查看。 这是我的代码,如果只有apply_status='PENDING'将仅在页面中查看。。。我添加if-else语句。。。但它不起作用。如果存在多个应用状态=已批准。它不会显示待处理的一个。但如果没有应用,则状态=已批准。它将查看所有应用程序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
<?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*FROMapplication
”,其中apply_status
=“pending”;然后,如果MYSQL\u num\u rows return>0,则显示行,否则显示“学生还没有申请。”