PHP员工数据库

时间:2016-02-25 21:09:00

标签: php mysql

我仍然是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");
?>

1 个答案:

答案 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等等。

希望这会有所帮助:)