我有一個MYSQL表,每行都有編輯和刪除鏈接。編輯鏈接轉到edit_patient.php,它有一個表格(實際上是最初用於將患者插入數據庫的表格的副本)。經過幾次嘗試之後,腳本仍在運行,儘管我猜它可能會得到改進(實際上,當我提交編輯時,我會收到「Undefined index:id」的通知。該ID通過GET過程傳遞到edit_patient.php文件。相關代碼如下:使用PHP和MySQL編輯表單:獲取ID的最佳方法
// Check for a valid user ID, through GET or POST:
if ((isset($_GET['id'])) && (is_numeric($_GET['id']))) { // From view_patient.php
$id = $_GET['id'];
} elseif ((isset($_POST['id'])) && (is_numeric($_POST['id']))) { // Form submission.
$id = $_POST['id'];
} else { // No valid ID, kill the script.
echo '<p>Sorry, it is not possible to update patient info at this time</p>';
include ('../elements/layouts/footer.php');
exit();
}
而且,經過一番清理和檢查提交的值:
if($action['result'] != 'error'){
// Make the query:
$q = "UPDATE `demographics`
SET lastname='$lastname', firstname='$firstname', clinic='$clinic', sex='$sex', dob='$dob', age='$age',
disease_1='$disease_1', disease_2='$disease_2', disease_3='$disease_3', address='$address', city='$city', country='$country',
zip='$zip', phone_1='$phone_1', phone_2='$phone_2', phone_3='$phone_3', email_1='$email_1', email_2='$email_2',
physician='$physician', notes='$notes'
WHERE dem_id=$id
LIMIT 1";
$r = @mysqli_query ($db_connect, $q);
if (mysqli_affected_rows($db_connect) == 1) { // If it ran OK.
// Tell the user we have edited patient data successfully
$action['result'] = 'success';
array_push($text,'Patient data have been updated on databank');
}else{
$action['result'] = 'error';
array_push($text,'Patient data could not be changed on databank. Reason: ' .
'<p>' . mysqli_error($db_connect) . '<br /><br />Query: ' . $r . '</p>');
} // End of if (empty($errors)) IF.
} // End of if (empty rows))
好了,到目前爲止好現在,爲了表示已插入的數據,我跑另一個查詢:
// Retrieve the user's information:
$q = "SELECT lastname, firstname, clinic, sex, dob, age, disease_1, disease_2, disease_3, address, city, country, zip, phone_1,
phone_2, phone_3, email_1, email_2, physician, notes
FROM `demographics`
WHERE dem_id='".$_GET['id']."'";
$r = @mysqli_query ($db_connect, $q);
if (mysqli_num_rows($r) == 1) { // Valid user ID, show the form.
// Get the user's information:
$row = mysqli_fetch_assoc ($r);
// Create the form:
在這裏,我不明白的關鍵行是WHERE dem_id='".$_GET['id']."'";
- >如果我離開它,腳本幾乎運行正常,但然後我得到一個未定義的索引id的通知。
但是,當我在第一個查詢中替換爲WHERE dem_id=$id";
時,該腳本給出了一個致命錯誤undefined variable: id
。
最後,提交我用下面的命令形式: 「/>一個好的工作,但它不工作時,我使用: 」 />
誰能幫助我瞭解爲什麼,以及如何糾正這個問題,我寧願能夠簡單地使用$id
(我相信是簡單直接的),但由於某種原因沒有按預期工作。最後,我希望能夠以編輯的形式報告還有用單選按鈕和下拉(選擇)菜單插入的數據。任何意見,將不勝感激!
感謝您對Agnes的編輯,非常感謝! – Diego