从数据库获取数据不能正常工作


Getting data from database not working properly

我使用这种形式和查询拉出存储在数据库中的信息,我遇到的问题是,如果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表

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

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

当你在PHP中使用mysql_query($query);

您还应该包括or print(mysql_error()),以便如果查询不执行,它将给您一个错误,您可以轻松调试代码。

所以,你的query_execute语句应该是这样的:

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