2014-12-13 58 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_ **