Php 和条件在MySQL查询中不起作用

Php 和条件在MySQL查询中不起作用,php,mysql,Php,Mysql,我需要你帮我写剧本。无论何时我包括 AND maintable.semester_name = '$semester_name' 在MySQL查询中,当实际为 处理echo$nums时,只有一个值应为0。当我 除去 正如我所期望的那样,查询给出了正常的结果 谢谢 $query = "SELECT * FROM maintable WHERE maintable.matric_no = '$matric_no' AND maintable.ses

我需要你帮我写剧本。无论何时我包括

AND maintable.semester_name = '$semester_name'
在MySQL查询中,当实际为 处理echo$nums时,只有一个值应为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'";
$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) 

这个查询是正确的。我猜您的条件与表中的任何行都不匹配。只需检查数据库中的值以及传递到条件中的值。

您的查询是正确的,但有点模糊。下面的查询完全按照您正在执行的方式运行,但字数较少

$query = "SELECT *             
   FROM maintable 
   WHERE matric_no = '$matric_no'
   AND   session = '$session'
   AND   semester_name = '$semester_name'
   AND   level = '$level'";
现在,关于您的问题,发生这种情况的唯一原因可能是没有与数据库中的记录匹配的记录


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

尝试此查询……它可以工作

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

您知道SQL注入吗?
查询会像我预期的那样给出正常的结果
,这两个示例都是相同的。那是打字错误还是真的有用,然后又不起作用?你能在“谢谢”之前检查一下帖子的部分吗。。。两个查询部分似乎是相同的…@cillosis在我编写查询之前应该有一个删除。我已经更新了这个问题。我在phpmyadmin中运行了查询,结果返回空。但实际上我有里面的数据。。我很肯定。感谢您在phpmyadmin中运行了查询,结果返回空。但实际上我有里面的数据。。我很高兴sure@dotman14,对此问题没有其他可能的解释。我在phpmyadmin中运行了查询,结果返回空。但实际上我有里面的数据。。我很肯定
$query = "SELECT *FROM maintable WHERE maintable.matric_no = '".$matric_no."'AND maintable.session = '".$session."' AND maintable.semester_name = '".$semester_name."' AND maintable.level = '".$level."' ";