我試圖研究這一個,並且嘗試了一些修復程序,所有這些修復最終都是一團糟。我是新手,並且知道我使用的是PHP的過時版本,但代碼並不是我的工作,但我堅持修復此問題,因爲我將減少錯誤並讓其他人員維護數據,從而受益。我正在改變曾經全是硬編碼選擇框的PHP/MySQL應用程序,我已經創建了一個小的HTML表單,用於在名爲「部門」的表中CRUD一組部門名稱,現在我們跨該站點交叉引用此部分。 mysql'department'表有3個字段department_id,status,department_name直到刷新頁面爲止,MySql數據不會在html表單上顯示
我在更新名爲'staff'的表時遇到問題,它允許在staff表中刪除此數據,但是在表單的頁面加載時它不填充部門名稱,它顯示一個空的選擇框。 「員工」表中的相關字段是staff_company。 我能夠打開一個下拉框,填充所有正確的選項,如果我保持框未觸及並更新表單上的其他數據,它會發布原始正確的department_id,維護數據的完整性並刷新頁面正確的部門名稱顯示。這是一個問題,如果任何人使用它,因爲他們可能認爲該字段是空的,當他們嘗試編輯,並可能做出不正確的選擇,它也是馬虎,我的想法是,我不知道如何早地聲明變量足夠的任何建議在新手談話/初學者談話將不勝感激下面的代碼部分 - 再加上我需要了解我要去哪裏錯了,所以我可以提高我的技能(注意頁面約1600行,因此不張貼整個頁面)。
//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>");
沒有錯誤報告?我想至少你會得到未定義的變量'$ dept_data'從你第一次使用它。'status'是一個保留關鍵字嘗試把它反引號。 https://dev.mysql.com/doc/refman/5.5/en/keywords.html – chris85
@ chris85 Nope - 沒有任何錯誤,我也沒有任何狀態問題。 – Jase
但是你有錯誤報告和/或顯示(如果沒有顯示你是否檢查日誌)。嘗試添加檢查錯誤,http://php.net/manual/en/function.mysql-error.php。 – chris85