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

标签 php mysql

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

AND maintable.semester_name = '$semester_name'

在 MySQL 查询中,学期名称的两个值都返回 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) 

最佳答案

您的查询是正确的,但有些含糊之处。以下查询的运行方式与您完全相同,但字数较少。

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

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

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

关于php - AND 条件在 MySQL 查询中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10160736/

相关文章:

javascript - 在 php 和 html 中重写/屏蔽 url 地址

php - MySQL 如何使用 php 存储多个变量(字符串和/或 int)?

mysql - mysql中的UTC_timestamp返回错误值

MySQL:错误 1064?

php - Mysqli查询函数插入重复行

php - 如何在函数内组织数据库连接的处理?

php - 如何处理用户生成的标记中的 ASCII 转义字符?

用于将单个表导出到 SQL 文件的 PHP 脚本

MySQL 删除查询错误

javascript - 为什么 JavaScript 和 PHP 时间戳之间存在差异