2011-06-29 14 views
0

私がカテゴリという名前のMySQLのテーブルからのリンクのリストを呼び出していた場合、私は、私は以下のようにselect文を使用すると思うリンク多対多の関係を持っている)。現時点では、各カテゴリ名の文字列がエコーされるので、エコーされた結果をどのようにアクティブなリンクにしてクリックするとビジネス情報が表示されるのか分かりません。エコーHTMLは

私が知っているのは、一度クリックすると、私が涼しいmapping_tableにSELECT文を発行することです。私が苦労しているのは、そのステートメントを発行するためにクリック可能にすることです。任意のアイデア、私は失われている!

EDIT:AND節を編集しました。私は間違っていた。

+3

何ですか? ... – dynamic

+1

URLの周囲にhtmlを追加する際に問題がありますか? – Jrod

+3

'' SELECT cat_nameとcat_description FROM categories "は有効なMySQLではありません。 –

答えて

7

あなたのSQLは無効です。これは、(固定文字列は、デバッグのために無用である)あなたのダイ()句が

... or die (mysql_error()) 

ので、あなたがエラーだったまさに見ることができなければなりません

SELECT cat_name, cat_description FROM categories 

ことshoudd。検索ループは次のようになります:

while($row = mysql_fetch_assoc($result)) { 
    echo <<<EOL 
<a href="script.php?category={$row['cat_name']}">{$row['cat_description']}</a> 

EOL; 
} 
+0

クエリに構文エラーはありません。つまり、SQLクエリが無効ではありません。しかし、おそらく彼が選択したかったものではありません。そして、 'die()'は機密情報であるため、 'mysql_error()'の結果を決して出力してはいけません。 'mysql_error()'の結果は、手動で、または 'trigger_error(mysql_error())'を使用してPHPにロギングさせるように)どこかに記録されますが、エンドユーザには表示されません。 – binaryLV

+0

必要な結果を生成しないクエリは構文エラーです。 "フィールドAND otherfield"はOPが望んでいないものです。また、デバッグの目的で、die()が有効です。私はそれが実動システム上で使用すべきではないことに同意しますが、テスト中は非常に貴重です。 –

+0

"構文エラー"は、パーサによって解析できないものです。問合せに無効な表またはフィールド名が含まれていても、*構文*エラーではありません。この場合、それはむしろ*論理*エラーかそのようなものです。デバッグの目的で 'die()'を使うことについて - 人間は 'die()'をいくつかのきちんとしたエラー処理機能に置き換える頻度はどれくらいですか?デバッグ目的の場合は、実際のエラーが発生した場合にのみ、die(mysql_error())を追加してください。 – binaryLV

関連する問題