根据网址中的日期显示数据

时间:2014-12-13 15:30:34

标签: php testing

我试图回应网址中定义的特定用户的某些细节(例如: search_result.php?lastname = Doe& date_of_birth = 1964-04-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;

我可以回应它从网址中获取的内容,但它不会从数据库中回显用户的详细信息。 问题可能是日期的格式吗? 我的 date_of_birth 列目前设置为 TEXT ,但HTML输入类型设置为 DATE

3 个答案:

答案 0 :(得分:1)

您的代码中存在多个错误:

  • 首先,你不要转义mysql查询中的变量。你应该至少使用mysql_real_escape_string。
  • 您在$_GET全球范围内收到了错误的字段,也提出了错误的请求。
  • 您忘了将变量放在引号之间,这使得请求失败我相信。
  • 您将所有$res[X]映射到$X。重点是什么?
  • 您在循环外打印$firstname,因此只获取最后一个。

答案 1 :(得分:1)

更改您的查询

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

答案 2 :(得分:0)

正如@Jeremiah Winsley在评论中所建议的那样:

  

首先,你要混合使用mysqli和mysql。其次,在任何一种变体中,_real_escape_string都有错误的语法。

操作问题在于他们在mysqli_mysql_之间感到困惑。他们对这个问题的编辑证实了这一点:

  

已解决,我混合了mysqli_和mysql_ **