从数据库获取数据无法正常工作

时间:2014-05-24 04:26:31

标签: php jquery mysql sql html5

我正在使用此表单和查询来提取存储在数据库中的信息,我遇到的问题是,如果studentcode是一个数字,它工作正常,但如果代码是字母的话不工作,我不知道是什么导致这个,任何想法?

<form action="classgrades.php?id=<?php echo $courseid ?>" method="post">
     <input type="text" name="studentCode" value="" placeholder="Student Code.." />
     <button type="submit" value="Submit">Submit</button> 
</form>

$studentcode = $_POST['studentCode'];
$query = "SELECT s.studentid, s.assignmentid, s.studentpoints,
                 a.assignmentid, a.assignmentname, a.assignmentpoints
          FROM studentgrades AS s, assignments AS a  
          WHERE a.assignmentid = s.assignmentid
          AND s.courseid = $courseid
          AND s.studentid = (SELECT studentid
                             FROM students
                             WHERE studentcode = '$studentcode')";

数据库

CREATE TABLE IF NOT EXISTS `students` (
  `studentid` int(11) NOT NULL AUTO_INCREMENT,
  `fname` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `lname` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
  `studentcode` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
  `courseid` int(11) NOT NULL,
  PRIMARY KEY (`studentid`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=21

CREATE TABLE IF NOT EXISTS `assignments` (
  `assignmentid` int(11) NOT NULL AUTO_INCREMENT,
  `assignmentname` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `courseid` int(11) NOT NULL,
  PRIMARY KEY (`assignmentid`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=27 ;

数据记录示例 学生表

studentid   - 19;
fname       - lizt;
lname       - tisz;
studentcode - cd;
courseid    - 22;

Assignemt table

assignmentid   - 3;
assignmentname - Hello;
courseid       - 22;

2 个答案:

答案 0 :(得分:1)

请检查两个表/列的排序规则是否相同。有时,数字对于不同的排序规则具有相同的值,但它们在字母表中有所不同。

答案 1 :(得分:1)

每当你使用mysql_query($ query);

在php中执行任何查询时

你还应该包含or print(mysql_error()),这样如果查询不会执行,它会给你一个错误,你可以很容易地调试代码。

所以,你的query_execute语句就像:

mysql_query($query) or print(mysql_error())