0

編集......私は学習環境に基づいた正規化されたデータベースを持っています。「C_Search」というテーブルにあるキーワードの選択を検索し、それらを使用して「C_Info」に保存されているコースの詳細を取得できるようにしたいと思います。私は基本的な検索機能を持っていますが、これに慣れていないので、キーワードを関与させる方法に夢中になり、私が進むにつれて学ぼうとしています...時々私たちは助けが必要です

これらは、関連するテーブルとその中のフィールドです。

C_Info

Course_ID Course_Name C_Description C_Duration C_Cost C_Entry_Req C_Assessment_Type C_Progression C_Type

C_Search

Course_ID C_Key_Words C_NLC_Ref_No Awarding_Body C_UCAS_Code

コマで区切られたキーワードのリストがあります。それらを使用して、ユーザーがデータベースで利用可能なコースを検索できるようにしたいと思います。

私は以前にこれを投稿したことは知っていますが、いくつかの答えは混乱していて、そのまま学ぶのに苦労しています。

<?php
mysql_connect ("localhost", "jimbooth_test","test1")  or die (mysql_error());
mysql_select_db ("jimbooth_groupproject");
// first part of the main query (with dummy WHERE operator so you can then use AND operators)
$query .= " AND C_Description like '%{$keyword_row['keyword']}%'";
// query the keywords
$res1 = mysql_query("select keyword from C_Search") or trigger_error(mysql_error()
// loop through rows and add conditions to the main query
while ($keyword_row = mysql_fetch_assoc($res1)) {
    $query .= " AND C_Description like '%{$keyword_row['keyword']}%'";
}
$res2 = mysql_query($query);
die($query);
if (mysql_num_rows($res2) <= 0) {
// no results
echo 'Sorry, No results found.';
} else
while ($row = mysql_fetch_array($res2)){
    echo '<br/> <B>Course Title:</B> '.$row['Course_Name'];
    echo '<br/> <B>Course Info:</B> '.$row['C_Description'];
    echo '<br/> <B>Duration:</B> '.$row['C_Duration'];
    echo '<br/> <B>Entry Requirements:</B> '.$row['C_Entry_Req'];
    echo '<br/> <B>Course Cost: '.$row['C_Cost'];
        echo '<br/> <B>Course Progression: '.$row['C_Progression'];    
    echo '<br/><br/>';
    }
?>
4

2 に答える 2

0

SQLクエリが失敗しています:

「C_Searchからキーワードを選択」

これは、$res1が結果ではないことを意味します。代わりに、ブール値のFALSE値です。mysql_fetch_assocはリソースを必要とします。C_Infoが存在し、タイプミスがないことを確認しますか?

追加してみてください:

$res1 = mysql_query("select keyword from C_Search") or trigger_error(mysql_error());

画面にエラーが表示されているかどうかを教えてください。

PS:WHERE 1を削除すると言っている人は、あなたがこれを行っていることに気付いていないようです。

$query .= " AND C_Description like '%{$keyword_row['keyword']}%'";

さらに下の行。クエリが動的に構築されているときに使用される最も一般的に使用される「常に真」の条件であるため、おそらくWHERE 1=1を使用する必要があることに同意します:)

于 2013-02-27T08:21:54.550 に答える
0

DBへの接続が正しく設定されていないと思います。接続を確認してください

<?php
// Create connection
$con=mysqli_connect("example.com","peter","abc123","my_db");

// Check connection
if (mysqli_connect_errno($con)){
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
?> 
于 2013-02-27T08:24:38.923 に答える