-1

按照我写的代码。这不会返回任何值,即使表具有关键字。

<?php
$conn = mysql_connect("localhost", "root", "qwerty");
mysql_select_db("mis", $conn);
$coursename=$_POST['coursename'];


$sql = "SELECT *
FROM course 
WHERE coursename='$coursename'".
"ORDER BY coursename";

$rs = mysql_query($sql);

while($row = mysql_fetch_array($rs))
{ 
echo $row['coursename'];
};

?>
4

4 回答 4

1

问题是区分大小写。MySQL 标识符不区分大小写,除非您将它们括在反引号中。但是,PHP 数组索引.

因此,如果您有一个名为 的列CourseName,则以下查询起作用:

SELECT *
FROM course
WHERE cOuRSEnaME = 'foo'
ORDER BY courSEnAmE

但是,在 PHP 中将其引用为$row['coursename']$row['cOURsENamE']或任何其他不同的组合都行不通,因为它们都引用了不同的键。您必须使用$row['CourseName'].

另请参阅:PHP 数组,数组索引是否区分大小写?

于 2013-08-08T06:40:35.740 回答
0
 $sql = "SELECT *
 FROM course 
 WHERE coursename='$coursename'".
 "ORDER BY coursename";

您的代码很好,但最好使用连接字符串和变量,这样它很容易解释,而且我想指出您的ORDER BY语句之前没有可能导致错误的空格,因此请确保它们之间有空格coursename = '" . $coursename . "' ORDER BY. 请参阅下面的完整查询

 $sql = "SELECT * 
  FROM course 
  WHERE 
  coursename = '" . $coursename . "' ORDER BY coursename";
于 2013-08-08T05:59:54.700 回答
0
$sql = "SELECT *
        FROM course 
        WHERE coursename='" . $coursename . "'
        ORDER BY coursename";

$result = mysql_query($sql, $conn);

if(mysql_num_rows($result) > 0) {
    while($row = mysql_fetch_array($result)) {
        echo $row['coursename'];
    }
} else {
    echo "given coursename does not exist";
}
?>
于 2013-08-08T06:00:58.740 回答
0

尝试error_reporting(E_ALL);在您之后立即添加<?php,看看您是否从浏览器收到任何错误消息。

您应该能够找到问题的根本原因。

祝你的课程好运(我猜;)。

于 2013-08-08T06:03:45.420 回答