0

MySQl データベースのプロファイルを、ドロップ可能な div にドロップされた名前とスキルセットと照合しようとしています。こちらを参照してください。2 つの問題に遭遇しました。1 つmysql_fetch_array() expects parameter 1 to be resource, boolean givenは、クエリが false を返すことを意味すると思われるエラーです。私の $data は何にも一致しません。ドロップ可能な div にドロップされた名前とスキルを、データベース内の名前とスキルと一致させるにはどうすればよいですか?

if (isset($_POST['data'])){
$data = $_POST['data'];

$query = mysql_query("SELECT * FROM gradesheet WHERE 'firstname','lastname','grade' LIKE '{$data}'");

    while($row=mysql_fetch_array($query)){
            $firstname=$row['firstname'];
            $lastname=$row['lastname'];
            $gradet=$row['grade'];
            $user_id=$row['user_id'];

echo $firstname;

私は%Like%それが私により良いチャンスを与えるだろうと思っていましたMATCH AGAINST。クエリをより適切に一致させ、何かを返すことに関する知識やアイデアをいただければ幸いです。一般的なヒントと同様に。

4

1 に答える 1

2

ステートメントLIKE内の各列に対して実行する必要があり、それらをまとめるにはまたは のいずれかを選択します。パーセント記号はワイルドカードです。WHEREANDOR%

SELECT * FROM gradesheet 
WHERE 'firstname' LIKE '%term%' 
    OR 'lastname' LIKE '%term%' 
    OR 'grade' LIKE '%term%'

mysql_*また、 PHP 拡張機能は非推奨になっているため、使用しないでください。代わりにPDOまたはmysqliを使用してください。非推奨の拡張機能を使用するだけでなく、コードは SQL インジェクション攻撃に対しても広く開かれています。クエリに貼り付ける前に、リクエスト変数からデータを常にフィルタリングする必要があります。

于 2012-11-03T03:59:12.317 に答える