PHP를 사용하여 데이터를 표시 한 다음 편집하고 '저장'버튼을 클릭하면 저장됩니다. 이것은 테스트를위한 것일 뿐이므로 암호 및 위생 검증에 대한 많은 검증을 사용하지 않았습니다. 주요 목표는 표시하고 업데이트하는 것입니다.동일한 PHP 파일에서 변수 값을 두 번 사용할 수 없습니다.
사용자 이름과 암호는 display.html (사용자 & 패스)에서 나옵니다. 데이터는 member_login_info 및 member_master의 두 테이블에서 선택되며 기본 키는 cust_id입니다. 레코드가 제대로 표시되지만 레코드를 업데이트하려고 할 때 $ cid 값이 누락 된 것처럼 보이므로 업데이트 할 수 없습니다.
$ cid 값은 두 번째 PHP 코드 집합에 표시 될 수 있지만 if (isset ($ _ POST [ 'edit'])) 함수 내에서 한 번 더 echo 될 수 없습니다.
나는 어딘가에서 간단한 실수가 있다는 것을 알고 있지만, 나는 그것을 이해할 수 없다. 귀하의 도움을 많이 주시면 감사하겠습니다.
<?php
session_start();
include 'db_connect.php';
$user \t = (isset($_POST['user']) && !empty($_POST['user']) ? $_POST['user'] : "");
$pass \t = (isset($_POST['pass']) && !empty($_POST['pass']) ? $_POST['pass'] : "");
$sql = mysql_query("SELECT member_login_info.cust_id, member_master.fname, member_master.lname, member_master.cust_dob
FROM member_login_info INNER JOIN member_master
ON member_login_info.cust_id = member_master.cust_id
WHERE member_login_info.profilename = '$user' AND member_login_info.password = sha1('$pass') ");
\t \t
$result=mysql_fetch_assoc($sql);
$fname = $result["fname"];
$lname = $result["lname"];
$dob = date("d-m-Y", strtotime($result["cust_dob"]));
$cid = $result["cust_id"];
// $_SESSION['cid'] = $result["cust_id"];
?>
<div id="edit_data">
<fieldset style="width:30%">
\t <legend>Edit information</legend>
\t
<table border="0">
\t <form name="edit" method="POST" >
\t <tr> \t \t
\t <td>First Name:</td><td>
\t <input name="fname" type="text" id="fname" value="<?php echo $fname; ?>" > </td>
\t </tr>
\t
\t <tr>
\t <td>Last Name:</td><td>
\t <input name="lname" type="text" id="lname" value="<?php echo $lname; ?>"> </td>
\t </tr>
\t
\t <tr>
\t <td>Date of Birth:</td><td>
\t <input name="dob" type="text" id="dob" value="<?php echo $dob; ?>"> </td>
\t </tr>
\t <tr>
\t \t
\t <tr>
\t <td><input id="exit" type="submit" name="exit" value="Exit" onclick="window.location.href='display.html'"></td>
\t <td><input id="edit" type="submit" name="edit" value="Save"></td>
\t </tr>
\t </form>
</table>
</fieldset> \t
</div>
<?php
echo "$cid";
if(isset($_POST['edit'])) {
\t
$fname = $_POST['fname'];
$lname = $_POST['lname']; \t \t
$dob = $_POST['dob'];
$sql = mysql_query("UPDATE member_master SET fname = '$fname', lname = '$lname', cust_dob = '$dob'
\t \t \t \t WHERE cust_id = '$cid' ");
}
?>
죄송합니다. 귀하의 질문은 정확히 무엇입니까?그것은 "내 코드에서 단순한 실수는 어디에 있습니까?" –
양식은 명명 된 속성을 사용하지 않으며 요소는 사용합니다. 따라서'if (isset ($ _ POST [ 'edit'])) {// 내부의 어떤 것도 작동하지 않습니다. }'- 숨겨진 유형의 요소를 사용하십시오. –
'if (isset ($ _ POST [ 'edit'])) {...}'는 함수가 아닙니다. –