AND条件在MySQL Query中不起作用

时间:2012-04-15 08:59:42

标签: php mysql

我需要你的脚本帮助。每当我包括

AND maintable.semester_name = '$semester_name'
在MySQL Query中,对于semester_name的两个值,它实际上都返回0 当处理echo $ nums时,只有一个应该具有值0。当我 除去

AND maintable.semester_name = '$semester_name'

查询给出了我期望的正常结果。

感谢。

$query = "SELECT *             
   FROM maintable 
   WHERE maintable.matric_no = '$matric_no'
   AND   maintable.session = '$session'
   AND   maintable.semester_name = '$semester_name'
   AND   maintable.level = '$level'";
$result = mysql_query($query);
$nums = mysql_numrows($result);
echo $nums ;                  

表格结构

COURSES
  course_id int(100) 
  course_code varchar(100) 
  course_title varchar(100) 
  course_unit int(10) 

MAINTABLE
  maintable_id int(255) 
  matric_no int(10) 
  session varchar(10) 
  semester_name varchar(10) 
  course_code varchar(10) 
  level int(10) 
  score int(10) 
  grade varchar(4) 

RESULT_UPLOAD
  upload_id int(10) 
  session varchar(10) 
  semester_name  varchar(10) 
  course_code varchar(10) 
  level varchar(10) 

SEMESTER
  semester_id int(10) 
  semester_name varchar(10) 

STUDENT
  matric_no int(10) 
  first_name varchar(100) 
  last_name varchar(100) 
  other_name varchar(100) 
  level int(10) 

USERS
  users_id int(10) 
  title varchar(20) 
  first_name varchar(20) 
  last_name varchar(20) 
  username varchar(20) 
  password varchar(100) 
  register_date datetime 
  tmp_name varchar(100) 
  type varchar(20) 
  name varchar(20) 
  size int(10) 

YEAR
  level_id int(10) 
  level int(10) 

3 个答案:

答案 0 :(得分:1)

您的查询是正确的,但有点含糊不清。以下查询正如您正在执行的那样运行,但字数较少。

$query = "SELECT *             
   FROM maintable 
   WHERE matric_no = '$matric_no'
   AND   session = '$session'
   AND   semester_name = '$semester_name'
   AND   level = '$level'";

现在,关于问题,可能发生这种情况的唯一方法可能是由于没有记录与数据库中的记录匹配。

尝试使用echo $query获取正在运行的查询,并直接从phpmyadmin运行查询,以查看您将获得多少结果集。

答案 1 :(得分:0)

查询是正确的。我猜你的条件确实与表中的任何行都不匹配。只需检查数据库中的值以及传入条件的内容。

答案 2 :(得分:0)

尝试此查询...它可以正常工作

$query = "SELECT *FROM maintable WHERE maintable.matric_no = '".$matric_no."'AND maintable.session = '".$session."' AND maintable.semester_name = '".$semester_name."' AND maintable.level = '".$level."' ";