以编程方式从MySQL中选择数据

时间:2012-01-13 15:08:48

标签: php mysql

我在MySQL中有表格,其中的数据存储如下:

table_1 
+-------+-------+  
|field_0|field_1|
+-------+-------+  
| WCON  |  A    |
+-------+-------+
| KROGR |  B    |
+-------+-------+
|       |  C    |
+-------+-------+
| HALL  |  D    |
+-------+-------+
| OZARK |  E    |
+-------+-------+
|       |  F    |
+-------+-------+
| MAR   |  G    |
+-------+-------+
| KROGR |  H    |
+-------+-------+
| MAR   |  I    |
+-------+-------+

field_0中有一些空值为空的字段。

我的代码在php中运行。有一个下拉菜单,其中所有字段名称都是手动放置的,菜单中的值是“all | WCON | KROGR | HALL | OZARK | MAR”。如果选择“MAR”,则从下拉菜单中显示G和I,但是当选择“all”时,需要显示field_1的所有值。

我的代码就是那样

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

但是如何使用$ field_value变量??

选择所有值

2 个答案:

答案 0 :(得分:8)

如果$field_value不是'all',则只添加WHERE子句。此外,请确保清理查询中的任何用户输入。即使它来自下拉列表,如果值从另一个页面传递到页面,用户也可以在那里插入错误的值。

$query = "SELECT field_1 FROM table_1";

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

答案 1 :(得分:-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。”都是变数。