根据php中的选择框值更新表

时间:2015-04-16 01:09:47

标签: php mysql

我在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;选择框

1 个答案:

答案 0 :(得分:0)

首先,使用mysqliPDO代替mysql。从PHP 5.5.0开始,mysql已被弃用,将来会被删除。

第二,我不熟悉表的结构和数据库的设计,但从我所看到的,你不需要两个查询,你可以使用{{一个查询获取所需的所有数据1}}

第三,我使用join字段作为发布参数,因为我不了解您的数据库设计,如果每个用户都有username字段,最好使用而不是ID integer type

第四,您必须使用每个表单中的用户名值创建隐藏输入,并将其与username一起发布。

你的代码需要更多的清理和性能修复,我做了一些但不是全部。

因此您的代码将是这样的(我没有将您leavestatus更改为mysql,因此您需要对其进行一些研究):

mysqli