2016-02-25 51 views
0

我對PHP和MySQL仍然很陌生,但是我正在製作一個數據庫,同時使用我可以從本書中獲得的所有信息。我試圖創建一個員工數據庫,您可以添加人員,按名稱搜索,然後刪除剛剛搜索的人員。最後一部分是我遇到一些重大問題的地方。我知道如何通過使用sql查詢來刪除特定的員工,但我不知道如何從最後搜索到的員工處傳遞信息,然後將其刪除。我將包括搜索僱員的代碼,然後包括我的刪除頁面,因爲我非常確定的其他頁面是正確的。PHP員工數據庫

PHP代碼

<?php 
echo "<h2>Search Results:</h2><p>"; 
$find = $_POST['find'] 

mysql_connect('localhost', 'username', 'password'); 
mysql_select_db('employedatabase'); 

$find = strtoupper($find); 
$find = strip_tags($find); 
$find = trim($find); 

$EmployeeName = mysql_query("SELECT * FROM employee_data WHERE upper($EmployeeName) LIKE '%$find%'"); 
while ($result = mysql_fetch_array($EmployeeName)) 
{ 
    echo $result['employee_name']; 
    echo "<br>"; 
} 
$anymatches = mysql_num_rows($EmployeeName); 
if ($anymatches == 0) 
{ 
    echo "Sorry, but we could not find that employee...<br><br>"; 
} 
echo "<b>Searched For:</b> " . $find; 
?> 

HTML代碼

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    <title>Employee Results</title> 
</head> 
<body> 
<h2>Employee Results</h2> 
<form name="Delete" method="POST" action="delete.php"> 
    Delete Employee: <input type="text" name="find"/> 
    <input type="submit" name="Delete" value="Delete"/> 
</form> 
</body> 
</html> 

Delete.php代碼

<?php 
mysql_connect('localhost', 'username', 'password'); 
mysql_select_db('employedatabase'); 

$find = $_POST['find']; 

$strSQL = "DELETE * FROM employee_data WHERE employee_name = $find"; 
header("Location: Home.html"); 
?> 
+2

請使用'mysqli_'功能在'mysql' ...其實,你的書是非常有可能陳舊和被認爲的弊端 – bear

+0

我認爲一個更簡單的方法是在搜索結果中包含員工ID,然後將相同的ID傳遞給刪除頁面。你在刪除查詢中使用該ID。 – Maximus2012

+3

哪本書會告訴你這樣做? 'WHERE employee_name = $ EmployeeName' –

回答

0

首先,$找到必須聲明爲$find = $_GET['find']並在其頂部,您應該使用method="POST"而不是method="GET"由於許多原因(即,即:安全)。

此外,您的SQL查詢不正確。 SELECT * FROM employee_data WHERE upper($EmployeeName) [...]應該是SELECT * FROM employee_data WHERE upper(employee_name) [...]

你也應該使用mysqli代替mysql,也許還有其他問題(DB類中的數據庫文件和呈現類中的東西),但正如你所說的那樣..你是新手,你正在努力學習; )

另外,在你的刪除表單中,你只有一個信息被轉移(大部分)到你的php頁面:<input type="text" name="find"/>。你的PHP頁面正在等待更多:employee_name,employee_address等..

希望這有助於:)

+0

好吧所以(是的,我仍然是一個noob)如果我改變方法爲POST,這意味着$ find = $ _GET ['find']應該改爲$ find = $ _POST ['find']吧? – Wolfenacht

+0

正確:) GET參數將顯示在URL中,而POST參數隱藏。 –