我使用这种形式和查询拉出存储在数据库中的信息,我遇到的问题是,如果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())
,以便如果查询不执行,它将给您一个错误,您可以轻松调试代码。
mysql_query($query) or print(mysql_error())