我尝试研究这一问题,还尝试了许多修复程序,但最终都一团糟。我对此并不陌生,并且知道我正在使用一个过时的PHP版本,代码不是我的工作,但是我坚持要解决此问题,因为我将通过减少错误并让其他人来维护数据而受益。我正在更改一个曾经充满了硬编码选择框的PHP / MySQL应用程序,我创建了一个小的html表单,用于在名为“部门”的表中收录一组部门名称,现在在整个站点中对此进行交叉引用。mysql“部门”表具有3个字段Department_id,status,department_name
我遇到的表单更新有一个麻烦的表格,称为“ staff”,它允许对人员表中的数据进行CRUD,但是在表单的页面加载时,它不会填充部门名称,而是显示一个空的选择框。“员工”表中的相关字段是staff_company。我能够打开一个包含所有正确选项的下拉框,如果我不更改框并更新表格上的其他数据,它会发布原始正确的department_id,以维护数据的完整性并刷新页面。确实显示正确的部门名称。如果其他人使用它,则可能会出现问题,因为他们在尝试编辑时可能会认为该字段为空,并且可能会做出错误的选择,它也很草率,
//editing departments using department id//
$select_dept_names = "SELECT *
FROM `departments`
WHERE status = 'active'
ORDER BY department_name ASC ";
$run_select_dept = mysql_query($select_dept_names,$link);
print(" <tr><td id='employee_left'>Department:</td><td><select name=\"staff_company\">
<option value=\"".$grab_staff['staff_company']."\">".$dept_data['department_name']."</option>");
while($dept_data=mysql_fetch_array($run_select_dept))
{
print("<option value=\"".$dept_data['department_id']."\">".$dept_data['department_name']."</option>");
}print("
</select></td></tr>");
在此先多谢-干杯Jase
下面更新了代码
//line 346 queries
$select_dept_names = "SELECT * FROM departments
ORDER BY department_name ASC ";
// line 363 - storing and fetching data
$run_select_dept = mysql_query($select_dept_names,$link);
$dept_data = mysql_fetch_array($run_select_dept);
// line 1147 - editing departments using department id///////////NEEDS WORK Only showing first department then on F5 displays existing department
//var_dump($main_report[department]); die(); - outputs only one line from the 'department' table
if($main_report['department'] = $dept_data['department_id'])
{
print(" <table id='edit_table_within'>Department:</td><td> <select name=\"department\">
<option value=\"".$main_report['department']."\">".$dept_data['department_name']." </option>");
}
else print("<table id='edit_table_within'>Department:</td><td> <select name=\"department\"> <option value=\"\">Select..</option>");
while($dept_data=mysql_fetch_array($run_select_dept))
{
print("<option value=\"".$dept_data['department_id']."\">".$dept_data['department_name']." </option>");
}print("
</select></td></tr>");
经过相当多的时间,我找到了解决方案,这可能很丑陋,并且可能有更有效的方法来解决此问题,但这是最后一段对我有用的代码
//editing departments using department id//
$select_o_dept_names = "SELECT *
FROM `departments`
WHERE department_id = ".$main_report['department']."";
$run_select_o_dept = mysql_query($select_o_dept_names,$link);
$dept_o_data=mysql_fetch_array($run_select_o_dept);
$select_dept_names = "SELECT *
FROM `departments`
WHERE status = 'active'
ORDER BY department_name ASC ";
$run_select_dept = mysql_query($select_dept_names,$link);
print("<table id='edit_table_within'>Department:</td><td><select name=\"department\">
<option value=\"".$main_report['department']."\">".$dept_o_data['department_name']."</option>");
while($dept_data=mysql_fetch_array($run_select_dept))
{
print("<option value=\"".$dept_data['department_id']."\">".$dept_data['department_name']."</option>");
}print("
</select></td></tr>");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句