我仍然是PHP和MySQL的新手,但我在使用本书可以获得的所有信息的同时创建了一个数据库。我正在尝试创建一个员工数据库,您可以添加人员,按名称搜索他们,然后删除您刚搜索过的人。最后一部分是我遇到一些重大问题的地方。我理解如何使用sql查询删除特定员工,我只是不知道如何从最后搜索到的员工传递信息然后删除它们。我将包括搜索员工的代码,然后是我的删除页面,因为我非常肯定的其他页面是正确的。
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");
?>
答案 0 :(得分:0)
首先,$ find必须声明为$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,也可以使用单独的关注点(数据库类中的数据库内容以及呈现类中的内容),但正如你所说的......你是新手,你正在努力学习;)
此外,在您的删除表单中,您只有一个信息(大部分)转移到您的php页面:<input type="text" name="find"/>
。您的php页面正在等待更多:employee_name,employee_address等等。
希望这会有所帮助:)