2 つのテーブルを比較してドロップダウン メニューにデータを入力しようとしています。1 つは上司と従業員番号のリスト、もう 1 つは従業員番号と名前です。各監督者と従業員の番号を取得し、ドロップダウン メニューの従業員名に変換する必要があるため、基本的には
TABLE payroll_employeelist
スーパーバイザー従業員
1234 3456
1234 2239
1234 123
2910 338
2910 3901
TABLE 給与_ユーザー
番号名
3456 ジョン・スミス
2239 メリージェーン
123 ジョー・ブラウン
等
スーパーバイザは、$usernumber と呼ばれるセッション変数によって識別されます。私がこれまでに持っていて、1つの結果(1つだけ!)を返しているのは次のとおりです:
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>";
}
これにより、テスト データ セット内の 3 つのレコードのうちの 1 つ、つまり中央のレコードが 1 つだけ正常に返されます。ちなみに、$usernumber は内部で生成されるため、インジェクションはできません。
最終更新- 解決済み 問題は信じられないかもしれません
echo "</select><br>";
while ループの結果をエコーする前にそれをエコーしていたので、オプション リストが空であると考えました。ランダムに出現する 1 人の従業員については説明できませんが、現在は機能しています。