2014-12-13 57 views
-2

我試圖回聲在url定義的特定用戶的某些細節(這樣的:search_result.php姓氏= Doe的& DATE_OF_BIRTH = 1964年4月12日?)顯示數據

$lname = mysqli_real_escape_string($_GET['lastname']); 
$dob = mysqli_real_escape_string($_GET['date_of_birth']); 
$result= mysql_query("SELECT * FROM qfever WHERE lastname = '$lname' AND date_of_birth = '$dob'"); 

while($row = mysql_fetch_array($result)) { 
$firstname = $row['firstname']; 
$lastname = $row['lastname']; 
$date_of_birth = $row['date_of_birth']; 
$employee_number = $row['employee_number']; 
} 
echo $firstname; 
echo $lastname; 
echo $date_of_birth; 
echo $employee_number; 

我可以回顯它從URL中拾取的內容,但它不會回顯數據庫中用戶的詳細信息。 問題可能是日期的格式嗎? 我的date_of_birth數據庫中的列當前設置爲TEXT但HTML輸入類型設置爲DATE

+0

但您的網址有沒有EMPLOYEE_NUMBER – 2014-12-13 15:34:43

+0

我更新了我的問題,它應該是更清楚現在 – granishe 2014-12-13 17:45:08

+0

能您確認表中的date_of_birth字段是否屬於哪種類型? – nitigyan 2014-12-13 17:52:52

回答

1

有你的代碼中的多個錯誤:

  • 首先,你不要逃避在MySQL查詢喂變量。你至少應該使用mysql_real_escape_string。
  • 您在$_GET全局中得到了錯誤的字段,並且執行了錯誤的請求。
  • 你忘了把變量放在引號之間,這讓我相信請求失敗。
  • 將您所有的$res[X]映射到$X。重點是什麼 ?
  • 您在循環外部打印$firstname,因此只能得到最後一個。
+0

我更新了我的問題,現在應該更清楚了 – granishe 2014-12-13 17:40:07

+0

您固定了第2點和第5點,但沒有其他問題。特別是我認爲導致SQL語法錯誤的3(引號)。 – 2014-12-13 17:42:32

+0

我必須填寫表單的每個字段與僱員的詳細信息,這就是爲什麼我映射到$ X – granishe 2014-12-13 17:50:30

1

更改您的查詢

SELECT * FROM qfever WHERE lastname = '$lname' AND date_of_birth = '$dob' 
+0

它仍然不打印所選數組的數據 – granishe 2014-12-13 18:11:38

+0

你是如何印刷??? – 2014-12-13 18:13:06

+0

echo $ firstname; echo $ lastname; echo $ date_of_birth; – granishe 2014-12-13 18:20:22

0

正如評論建議的@Jeremiah Winsley:

首先,你混的mysqli和mysql。其次,對於任何一種變體,您都有錯誤的語法_real_escape_string

操作問題在於他們在mysqli_mysql_之間混淆。這是由他們編輯的問題證實說:

解決了,我混mysqli_和mysql_ **