0

私のスクリプトであなたの助けが必要です。私が含めるたびに

AND maintable.semester_name = '$semester_name'

MySQL クエリでは、semester_name の両方の値に対して 0 を返しますが、実際には、echo $nums が処理されるときに 0 の値を持つのは 1 つのみです。外すと

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) 
4

3 に答える 3

1

クエリは正しいですが、あいまいさが少しあります。次のクエリは、実行していることとまったく同じように実行されますが、単語が少なくなります。

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

さて、あなたの問題について、これが起こる可能性がある唯一の方法は、データベース内のレコードと一致するレコードがないことが原因である可能性があります.

実行中のクエリを取得し、echo $queryphpmyadmin から直接クエリを実行して、得られる結果セットの数を確認してください。

于 2012-04-15T09:11:56.637 に答える
0

クエリは正しいです。あなたの条件は、テーブル内のどの行にも一致しないと思います。データベースにある値と、条件に渡すものを確認してください。

于 2012-04-15T09:03:32.857 に答える
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."' ";
于 2013-04-26T11:28:11.500 に答える