我是PHP的新手,现在我在IF-ELSE条件下遇到了一些问题
到目前为止,这些是我的代码。
<?php
include('DBconnect.php');
mysql_query("USE onlinerecruitment");
$app_id_check = "";
$app_pos_check = "";
$result = mysql_query("SELECT * FROM applicant_skill ");
?>
<table style="width:100%">
<tr>
<th>Applicant's Name</th>
<th>Last Name</th>
<th>Position Selected</th>
<th></th>
<th></th>
</tr>
<?php
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$check_app_id = $row['App_Data_ID'];
$check_pos_id = $row['Position_ID'];
if($app_id_check != $check_app_id && $app_pos_check != $check_pos_id){
$skill_id = $row['Skill_ID'];
$app_id = $row['App_Data_ID'];
$result01 =mysql_query("SELECT * FROM required_skills WHERE Skill_ID = '".$skill_id."' ");
$row01 = mysql_fetch_array($result01, MYSQL_ASSOC);
$skill_name = $row01['Skill_Name'];
$pos_id = $row01['Position_ID'];
$result02 = mysql_query("SELECT * FROM position WHERE Position_ID = '".$pos_id."' ");
$row02 = mysql_fetch_array($result02, MYSQL_ASSOC);
$result1 = mysql_query("SELECT * FROM application_data_file WHERE App_Data_ID = '".$app_id."' ");
$row1 = mysql_fetch_array($result1, MYSQL_ASSOC);
$app_mail = $row1['App_Email'];
$result2 = mysql_query("SELECT * FROM applicant_acct WHERE App_Email = '".$app_mail."' ");
$row2 = mysql_fetch_array($result2, MYSQL_ASSOC);
echo "<TR>";
echo "<TD>".$row2['App_Name']."</TD>";
echo "<TD>".$row2['App_LName']."</TD>";
echo "<TD>".$row02['Position_Name']."</TD>";
echo "<TD><a href='edit-testing-score-form.php?app_id=".$row['App_Data_ID']."&pos_id=".$row['Position_ID']."'>Edit Testing Score</a></TD>";
echo "<TD><a onclick='javascript:confirmationDelete($(this));return false;' href='delete-testing-score.php?app_id=".$row['App_Data_ID']."&pos_id=".$row['Position_ID']."'>Delete</a></TD>";
echo "</TR>";
$app_id_check = $app_id;
$app_pos_check = $pos_id;
}
}
?>
</table>
这是我到目前为止的结果
这是我在数据库中的数据
根据我的数据库图像,结果不应该像第一个表中那样在表中有2行。它现在只打印出App_Data_ID 00001和00012,因为它们是第一个没有相同Position_ID的人。
我的预期结果,该表应打印App_Data_ID 00001,00002,00012,00013,00014,依此类推。当只有App_Data_ID和Position_ID与最后一个完全相同时,它不应该打印。
我认为我在IF-ELSE条件下的逻辑是错误的,但我不知道为什么,请帮忙。
答案 0 :(得分:1)
做一件事。
将SQL从SELECT * FROM applicant_skill
更改为SELECT * FROM applicant_skill where App_Data_ID<>Position_ID
。通过这个你不需要检查是否。它只会显示那些App_Data_ID和Position_ID不相同的数据。
我会解决你的问题。