gpt4 book ai didi

php - 比较两个 MySQL 表以填充下拉列表

转载 作者:行者123 更新时间:2023-11-29 13:54:56 24 4
gpt4 key购买 nike

我试图通过比较两个表来填充下拉菜单,一个表包含主管和员工编号列表,另一个表包含员工编号和姓名。我需要获取每个主管和员工的号码,并将它们转换为下拉菜单的员工姓名,所以基本上

表 payroll_employeelist

主管员工

1234 3456

1234 2239

1234 123

2910 338

2910 3901

表 payroll_users

号码名称

3456 约翰·史密斯

2239 玛丽珍

123 乔·布朗

等等

主管由名为 $usernumber 的 session 变量标识。到目前为止,我所返回的结果(只有一个!)如下:

if ($loademployees == 1){
echo "<option value=\"base\">---- Employee Name ----</option>";

$query = "SELECT payroll_employeelist.employee, payroll_users.number, payroll_users.name FROM payroll_employeelist WHERE supervisor='$usernumber' LEFT JOIN payroll_users ON payroll_employeelist.employee=payroll_users.number ";

$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
echo "<option value=\">" . $row{'name'} . "</option>";
}
echo "</select><br>";
}

谁能帮忙解决这个问题吗?我感觉我用 JOIN 做了一些有趣的事情。它应该看起来像下拉列表中的员工姓名列表。

更新:

我现在拥有的是:

if ($loademployees == 1){
echo "<option value=\"base\">---- Employee Name ----</option>";

$query = "SELECT payroll_employeelist.supervisor, payroll_employeelist.employee, payroll_users.number, payroll_users.name
FROM payroll_employeelist
INNER JOIN payroll_users
ON payroll_employeelist.employee = payroll_users.number
WHERE supervisor = '$usernumber' ";

$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
echo "<option value=\">" . $row['name'] . "</option>";

}
echo "</select><br>";
}

这成功返回了测试数据集中的三个记录之一,只有一个,中间的记录。顺便说一下,$usernumber 是内部生成的,不可能注入(inject)。

上次更新-已解决不管你信不信,问题是

echo "</select><br>"; 

它在回显 while 循环的结果之前回显该内容,因此它认为选项列表为空。请注意,我无法解释随机出现的单个员工,但它现在正在工作。

最佳答案

您需要在表 payroll_employeelist 上加入 payroll_users 两次,因为有两列依赖于该表。

SELECT  sup.Name SupervisorName,
empName EmployeeName
FROM payroll_employeelist a
INNER JOIN payroll_users sup
ON a.Supervisor = sup.number
INNER JOIN payroll_users emp
ON a.Employee = emp.Number
WHERE sup.Supervisor = '$usernumber'
<小时/>

作为旁注,该查询容易受到 SQL Injection 的影响。如果变量的值(s)来自外部。请查看下面的文章,了解如何预防这种情况。通过使用 PreparedStatements,您可以摆脱在值周围使用单引号的情况。

关于php - 比较两个 MySQL 表以填充下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16017336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com