dsiuy42084 2016-01-04 07:40
浏览 9

更新查询不工作的PHP

I'm working on a project and I'm suppose to update the another user's details using the $_GET method. My problem is that when user clicks on the id, it does go to edit page but when i change something and press the update button, it does not update. I'm not sure what am i doing wrong here.. I would really appreciate f someone can help me.

//Edit

My code is working now guys, I just changed the $_POST to $_REQUEST now and my form is updated.. Thank you all for helping me.. Thank you.. Here is my edited code.. I've taken out the oassword field, but i have a doubt.. Is using request safe?

<?php
include '../../connection.php';

$sid = $_REQUEST['sid'];
$query = "SELECT * FROM STUDENT WHERE STU_ID='$sid'";
$result = mysqli_query($connection, $query);

if(mysqli_num_rows($result)>0){
   while($row = mysqli_fetch_assoc($result)){
    $unm = $row["STU_UNAME"];
    $fnm = $row["STU_FNAME"];
    $lnm = $row["STU_LNAME"];
    $dob = $row["STU_DOB"];
    $add = $row["STU_ADD"];
    $tlp = $row["STU_PHONE"];
        $sem = $row["STU_SEM"];
        $img = $row["STU_IMG"];
        $sts = $row["STU_STATUS"];
        $cid = $row["CRS_ID"];
  }
}
else{
   $no = "0 result!";
}

if($_SERVER["REQUEST_METHOD"] == "POST"){
//insert details in data

$sid = $_POST["sid"]; $snm = $_POST["snm"]; $fst = $_POST["fnm"]; $lst = $_POST["lnm"]; $sdb = $_POST["dob"]; 
$sad = $_POST["add"]; $shp = $_POST["tlp"]; $stt = $_POST["sts"]; $sem = $_POST["sem"]; $cid = $_POST["cid"];

$sql = "UPDATE STUDENT SET 
        STU_ID='$sid', STU_UNAME='$snm', STU_FNAME= '$fst', STU_LNAME='$lst', STU_DOB='$sdb', STU_ADD='$sad', STU_PHONE='$shp', 
        STU_STATUS='$stt', STU_SEM='$sem', CRS_ID = '$cid' WHERE STU_ID='$sid'";

 //check if data is updated
 if (mysqli_query($connection, $sql)) {
    header("Location: searchStudent.php");
 }
 else {
    echo "Error: " . $sql . "<br>" . mysqli_error($connection);
  }
}
?>

Here's my form code:

<form class="contact_form" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<ul>
   <li>
        <h2>Edit Students Details</h2>
        <span class="required_notification">* Denotes Required Field</span>
   </li>
   <li>
        <label for="id">Student ID: </label>
        <input type="text" name="sid" value="<?php echo $sid;?>"/>
</li>
<li>
    <label for="name">Username: </label>
    <input type="text" name="snm" value="<?php echo $unm;?>"/>
</li>
<li>
    <label for="name">First Name: </label>
    <input type="text" name="fnm" value="<?php echo $fnm;?>"/>
</li>
<li>
    <label for="name">Last Name: </label>
    <input type="text" name="lnm" value="<?php echo $lnm;?>"/>
</li>
<li>
    <label for="dob">Date of Birth: </label>
    <input type="date" name="dob" value="<?php echo $dob;?>"/>
</li>
<li>
    <label for="add">Address: </label>
    <textarea name="add" rows="4" cols="50"><?php echo $add;?></textarea>
</li>
<li>
    <label for="tlp">Phone: </label>
    <input type="text" name="tlp" value="<?php echo $tlp;?>"/>
</li>
<li>
    <label for="sts">Status: </label>
    <select name="sts">
        <option selected><?php echo $sts;?></option>
        <option value="FULLTIME">FULL TIME</option>
        <option value="PARTTIME">PART TIME</option>
    </select>
</li>
<li>
    <label for="sem">Semester: </label>
    <select name="sem">
        <option selected><?php echo $sem;?></option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
    </select>
</li>
<li>
    <label for="crs">Course: </label>
    <select name="cid">
        <option selected><?php echo $cid;?></option>
        <option value="AL">AL</option>
        <option value="DBM">DBM</option>
        <option value="DIT">DIT</option>
        <option value="DTM">DTM</option>
        <option value="FIS">FIS</option>
    </select>
</li>
<li>
    <button class="submit" type="submit" name="update">Update</button>
</li>
  • 写回答

3条回答 默认 最新

  • doucao1066 2016-01-04 07:54
    关注

    Make sure your form method is POST

    Try this code:

    <?php
    include '../../connection.php';
    //
     $id = $_POST['id'];
    $query = "SELECT * FROM STUDENT WHERE STU_ID='$id'";
    $result = mysqli_query($connection, $query);
    
    if(mysqli_num_rows($result)>0){
      while($row = mysqli_fetch_assoc($result)){
        $unm = $row["STU_UNAME"];
        $fnm = $row["STU_FNAME"];
        $lnm = $row["STU_LNAME"];
        $pwd = $row["STU_PWD"];
        $dob = $row["STU_DOB"];
        $add = $row["STU_ADD"];
        $tlp = $row["STU_PHONE"];
        $sem = $row["STU_SEM"];
        $img = $row["STU_IMG"];
        $sts = $row["STU_STATUS"];
        $cid = $row["CRS_ID"];
      }
    }
    else{
        $no = "0 result!";
    }
    
    
    $pwdErr = $cpwdErr= "";
    if($_SERVER["REQUEST_METHOD"] == "POST"){
       if($_POST["pwd"] == $_POST["cpwd"]){
         if(strlen($_POST["pwd"])>8){
        //insert details in data
    
        $sid = $_POST["sid"]; $pwd = $_POST["pwd"]; $snm = $_POST["snm"]; $fst = $_POST["fnm"]; $lst = $_POST["lnm"];
        $sdb = $_POST["dob"]; $sad = $_POST["add"]; $shp = $_POST["tlp"]; $stt = $_POST["sts"]; $sem = $_POST["sem"];
        $cid = $_POST["cid"];
    
        $sql = "UPDATE STUDENT SET 
                STU_ID='$sid', STU_PWD='$pwd', STU_UNAME='$snm', STU_FNAME= '$fst', STU_LNAME='$lst', STU_DOB='$sdb', STU_ADD='$sad', STU_PHONE='$shp', 
                STU_STATUS='$stt', STU_SEM='$sem', CRS_ID = '$cid' WHERE STU_ID='$id'";
    
            //check if data is updated
            if (mysqli_query($connection, $sql)) {
                header("Location: searchStudent.php");
            }
            else {
                echo "Error: " . $sql . "<br>" . mysqli_error($connection);
            }
        }
        else{
            $pwdErr = "Invalid/Password must be more than 8 characters!";
        }
    }
    else{
        $cpwdErr = "Password not same!";
      }
    }
    ?>
    

    Get ride for how to use prepare statement with example here.

    Hope this help you well!

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#网络安全#的问题:求ensp的网络安全,不要步骤要完成版文件
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥20 使用Photon PUN2解决游戏得分同步的问题
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM