简体   繁体   English

AND条件在MySQL查询中不起作用

[英]AND condition not working in MySQL Query

Please i need your help with my script. 请我在我的脚本方面需要您的帮助。 Whenever i include 每当我包括

AND maintable.semester_name = '$semester_name'

in the MySQL Query, it returns 0 for both values of semester_name, when actually only one is supposed to have a value of 0 when echo $nums is processed. 在MySQL查询中,当处理echo $ nums时,实际上只有一个值为0时,它为semester_name的两个值都返回0。 When i remove 当我删除

AND maintable.semester_name = '$semester_name'

the query gives normal results as i expect. 该查询给出了我期望的正常结果。

Thanks. 谢谢。

$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 ;                  

TABLE STRUCTURE 表结构

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) 

Your query is correct, but with bit of ambiguity. 您的查询是正确的,但有点含糊。 The following query is run as exactly you are doing, but with less words. 以下查询将按照您正在执行的方式运行,但是用的单词更少。

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

Now, about your problem , the only way this might be happening may be due to no record is matching the records in your database. 现在,关于您的问题 ,可能发生这种情况的唯一方法可能是由于没有记录与数据库中的记录匹配。

Try to get the query you are running with echo $query and run the query directly from phpmyadmin to see how many result set you will get. 尝试使用echo $query获取正在运行的echo $query并直接从phpmyadmin运行查询以查看将获得多少结果集。

The query is correct. 该查询是正确的。 I guess your conditions really don't match any rows in the table. 我猜您的条件确实与表中的任何行都不匹配。 Just check what values you have in the database and what your are passing into the conditions. 只需检查数据库中具有哪些值以及将什么传递给条件即可。

试试这个查询...它的工作原理

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM