2014-01-19 22 views
0

我有一個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(我相信是簡單直接的),但由於某種原因沒有按預期工作。最後,我希望能夠以編輯的形式報告還有用單選按鈕和下拉(選擇)菜單插入的數據。任何意見,將不勝感激!

+0

感謝您對Agnes的編輯,非常感謝! – Diego

回答

0

請確保你的特定記錄已經在你的edit_patient.php中的提交按鈕後更新?如果它工作,並在下一個哪個頁面顯示..?它是否是Display.php(即所有記錄顯示頁面)?請首先指定,我真的幫助你解決你的查詢。

+0

嗨user321,感謝您的及時回覆!是的,我確認數據庫中的記錄更新得很好。這在我使用$ _GET ['id']結構時。另一方面,當我使用dem_id = $ id(正如我所願)它不起作用(顯然,$ id沒有被定義)......非常感謝支持! – Diego

+0

woops幾乎忘了說:當記錄更新時,用戶會得到一個「迄今爲止很好」的信息,就目前而言...... – Diego

相關問題