我在php中有一个页面列出了一个人的详细信息。我需要做的是,当我选择一个选择框值时,表格应该根据该选择框值进行更新。
首次应打印第一行的详细信息。当我选择批准休假/拒绝假时,表格应该更新。
$query2 = "SELECT * FROM `leavetable` WHERE forwardedtoteacher=1";
$result2 = mysql_query($query2);
$numresults2= mysql_num_rows($result2);
for ($i = 0; $i < $numresults2; $i++)
{
$row2 = mysql_fetch_array($result2);
$username = $row2['username'];
$sdate = $row2['fromdate'];
$edate = $row2['enddate'];
$session = $row2['session'];
$reason = $row2['reason'];
$
$query = "SELECT * FROM `user` WHERE username='$username'";
$result = mysql_query($query);
$numresults = mysql_num_rows($result);
$row = mysql_fetch_array($result);
$usern = $row['username'];
$fname = $row['fname'];
$lname = $row['lname'];
$designation = $row['designation'];
$phonenumber = $row['phonenumber'];
echo'<table><tr><td>First name </td><td style="padding-left:20px;">'.$fname.'</td></tr><br>';
echo'<tr><td>Last name </td><td style="padding-left:20px;">'.$lname.'</td></tr><br>';
echo'<tr><td>Designation</td><td style="padding-left:20px;">'.$designation.'</td></tr><br>';
echo'<tr><td>Phonenumber </td><td style="padding-left:20px;">'.$phonenumber.'</td></tr><br>';
echo'<tr><td>Start Date </td><td style="padding-left:20px;">'.$sdate.'</td></tr><br>';
echo'<tr><td>End Date </td><td style="padding-left:20px;">'.$edate.'</td></tr><br>';
echo'<tr><td>Session </td><td style="padding-left:20px;">'.$session.'</td></tr><br>';
echo'<tr><td>Reason </td><td style="padding-left:20px;">'.$reason.'</td></tr><br>';
echo"</table>\n";
?>
<form action = <?php echo $_SERVER['PHP_SELF']; ?> method = 'POST'>
<?php
echo '<select name="leavestatus">';
echo '<option value="Approve Leave">Approve Leave</option>';
echo '<option value="Reject Leave">Reject Leave</option>';
echo '</select>';
if(isset($_POST['leavestatus']))
{
if($_POST['leavestatus'] == 'Approve Leave')
{
$stmt = "UPDATE leavetable SET forwardedtohod = 1,forwardedtoteacher = 0 WHERE username = '$usern'";
$stmt11 = mysql_query($stmt);
}
if($_POST['leavestatus'] == 'Reject Leave')
{
$stmt2 = "UPDATE leavetable SET fromdate = '',enddate ='',session = '',typeofleave = '',forwardedtoteacher=0,forwardedtohod=0 WHERE username= '$usern'";
$stmt3 = mysql_query($stmt2);
}
}
print "<hr>";
}
下面。我有两个表,leavetable和用户表。我所做的是,我从这些表格中获取了详细信息并进行了显示。然后我为每一行提供了一个复选框,当我选择批准时,相应的代码应该起作用,当选择拒绝请假时,相应的代码应该有效。那就是我需要用选择框值更新表。提前致谢
Fisrt名称:
姓氏:
指定:
.......
.......
.....
|批准离开| v | ------&GT; Selectionbox
----------------------------------------------- ------
Fisrt名称:
姓氏:
指定:
.......
.......
.....
|批准离开| ------&GT;选择框
答案 0 :(得分:0)
首先,使用mysqli
或PDO
代替mysql
。从PHP 5.5.0开始,mysql
已被弃用,将来会被删除。
第二,我不熟悉表的结构和数据库的设计,但从我所看到的,你不需要两个查询,你可以使用{{一个查询获取所需的所有数据1}}
第三,我使用join
字段作为发布参数,因为我不了解您的数据库设计,如果每个用户都有username
字段,最好使用而不是ID integer type
第四,您必须使用每个表单中的用户名值创建隐藏输入,并将其与username
一起发布。
你的代码需要更多的清理和性能修复,我做了一些但不是全部。
因此您的代码将是这样的(我没有将您leavestatus
更改为mysql
,因此您需要对其进行一些研究):
mysqli