2016-01-04 5 views
-2

Я работаю над проектом, и я предполагаю обновить данные другого пользователя, используя метод $_GET. Моя проблема заключается в том, что когда пользователь нажимает на идентификатор, он переходит на страницу редактирования, но когда я что-то меняю и нажимаю кнопку обновления, он не обновляется. Я не уверен, что я делаю неправильно здесь. Я бы очень признателен, если кто-то может мне помочь.update query not working php

// Редактировать

Мой код теперь работает, ребята, я только что изменил $ _POST до $ _REQUEST сейчас и моя форма обновляется .. Спасибо всем за помощь мне .. Спасибо .. Вот мой отредактированный код .. Я вынул поле oassword, но у меня есть сомнения. Является ли использование запроса безопасным?

<?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); 
    } 
} 
?> 

Вот мой код формы:

<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> 

+0

любое сообщение об ошибке? –

+0

Сообщение об ошибке тоже – Butterfly

+1

echo "Ошибка:". $ sql. "
". mysqli_error ($ подключение); –

ответ

0

Убедитесь, что ваш метод POST форма

Попробуйте этот код:

<?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!"; 
    } 
} 
?> 

Получить поездку, чтобы использовать инструкцию подготовки к примеру here.

Надейтесь, что это вам поможет!

+0

Мне понравилось, что вы сказали и изменили его, но теперь проблема в том, что когда пользователь щелкает идентификатор, он переходит на страницу редактирования, но не показывает данные пользователя. Это мой код, когда пользователь нажимает ссылку редактирования Edit, а затем он перейдет на страницу обновления –

+0

, что является результатом 'print_r ($ _ POST); выход; '. Просто проверьте и сравните его с вашими значениями запросов на обновление. –

+0

ничего, они показывают только Array() –

0

Ваша ошибка ваш использует POST в форме, но получить его значение с разменять $ _GET с $ _POST

$id = $_POST['id']; 
+0

, что было раньше, теперь я изменил код с $ _POST [ «ID»] –

+0

должно быть это '$ ID = $ _POST [«с.и.д.»];' –

+0

поскольку вход имя для студента - 'sid' –

0

также проблема в том, что идентификатор вы публикуете в «Sid», но вы используете только «id» как $_POST['id'] вместо $_POST['sid']. так что используйте это -

$id = $_POST['sid']; 

вместо -

$id = $_POST['id']