2012-01-13 9 views
0

私は、データは以下のようにstroredているMySQLでのテーブルを持っています。選択したデータはprogramitically

私のコードはPHPで動作します。すべてのフィールド名を手動で入力するドロップダウンメニューがあり、メニューの値は "all | WCON | KROGR | HALL | OZARK | MAR"です。ドロップダウンメニューから「MAR」を選択するとGとIが表示されますが、「すべて」を選択するとfield_1のすべての値を表示する必要があります。

私のコードは、その

$field_value = "MAR"; 
$query = "select field_1 from table_1 where field_0 = '$field_value ' "; 

のようですが、どのように私は$ FIELD_VALUE変数を使用してすべての値を選択することができます?

+0

あなたの質問を正しく理解しているかどうかわからない場合は、クエリでfield_1のすべての値が表示されます。あなたの例ではGとI – RMcLeod

+0

あなたの本当のコードですか、それともここで再入力しましたか?あなたの質問にfield_1のスペルが間違っています(filed_1を読む) – Tom

+0

私はここにそれを再入力しました@Tom – fean

答えて

8

$field_valueが「すべて」でない場合は、WHERE句のみを追加してください。また、すべてのユーザー入力が照会にサニタイズされていることを確認してください。ドロップダウンから来ていても、値が別のページからページに渡されていると、ユーザーはそこに不良値を挿入することができます。

$query = "SELECT field_1 FROM table_1"; 

if ($field_value != "all") 
    $query .= " WHERE field_0 = '". mysql_real_escape_string($field_value) ."'"; 
-1

このようなSQLでPHPの変数を追加します。

mysql_query(" 
SELECT DISTINCT 
c.id AS courseid, 
".$entityString.", 
c.fullname, 
c.shortname, 
c.startdate, 
u.id as userid, 

FROM mdl_course c 
join mdl_course_categories ct on ct.id = c.category 

".$whereClause." AND rl.id = 5 ".$orderClause." 
"); 

お知らせ "$ entityString。。" 、 "$ whereClause"と "。$ orderClause"すべての変数です。