【问题标题】:select data from MySQL programmatically以编程方式从 MySQL 中选择数据
【发布时间】:2018-08-04 23:58:36
【问题描述】:

我在 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 ”。 From the dropdown menu if "MAR" is selected it will show G and I, but when "all" is selected it need to show all values of field_1.

我的代码是这样的

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

但是如何使用 $field_value 变量选择所有值??

【问题讨论】:

  • 不确定我是否正确理解了您的问题,您的查询将为您提供 field_1 中的所有值,例如在你的例子中 G 和 I
  • 那是你的真实代码还是你在这里重新输入的?您在查询中拼错了 field_1(读取为 filed_1)

标签: php mysql


【解决方案1】:

仅当$field_value 不是“全部”时才添加 WHERE 子句。此外,请确保对查询中的任何用户输入进行清理。即使它来自下拉列表,如果该值是从另一个页面传递到该页面的,用户也可以在那里插入错误的值。

$query = "SELECT field_1 FROM table_1";

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

【讨论】:

    【解决方案2】:

    像这样在 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”。都是变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-05
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多