-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 に答える