我正在使用此表单和查询来提取存储在数据库中的信息,我遇到的问题是,如果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;
答案 0 :(得分:1)
请检查两个表/列的排序规则是否相同。有时,数字对于不同的排序规则具有相同的值,但它们在字母表中有所不同。
答案 1 :(得分:1)
每当你使用mysql_query($ query);
在php中执行任何查询时你还应该包含or print(mysql_error())
,这样如果查询不会执行,它会给你一个错误,你可以很容易地调试代码。
所以,你的query_execute语句就像:
mysql_query($query) or print(mysql_error())