我在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变量??
选择所有值答案 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。”都是变数。