繁体   English   中英

如何从保存为数组的MySQL数据库获取数据

[英]How to get data from mysql db which saved as an array

我想从我的mysql数据库中获取数据,但其中一列将数据保存为数组...我如何分别获取这些值。 请指教...

这是将数据保存在db中作为下拉值的方式

{"value":["Authority ","Boards"],"order":["1","2"]}

mysql查询

SELECT a.select FROM sltdb_cddir_fields a WHERE a.categories_id=81

我想要的是将Austhrity和Boards作为两个数据值而不是此数组...

请指教

 $searchg=$_GET["term"];
// $query=mysql_query("SELECT * FROM sltdb_cddir_content where title like '%".$searchg."%'AND categories_id=81 order by title ASC ");
$query=mysql_query ("SELECT a.select FROM sltdb_cddir_fields a WHERE  a.select like '%".$searchg."%'  a.categories_value_id=19 ");
$json=array();
    while($display=mysql_fetch_array($query)){
         $json[]=array(
                    'value'=> $display["title"],
                    'label'=>$display["title"]
                        );
    }

 echo json_encode($json);
?>

Mysqli提供了几种结果类型,例如mysqli_fetch_all()返回一个关联数组。 如果您希望以非标准方式格式化数据,则可能需要遍历数据并自己构建数据结构。

$json = array();

while($row = mysqli_fetch_assoc($result)) {
    $json[$row['order']] = $row['value'];
}

return json_encode($json);

在JavaScript中:

$.each(json, function(key, value) {
    html += '<option value="' + key + '">' + value + '</option>';
});

您可以使用爆破像这样将数组更改为字符串

while($display=mysql_fetch_array($query)){
         $json[]=array(
                    'value'=> implode(",", $display["title"]),
                    'label'=>implode(",", $display["title"])
                        );
    }

甚至可以使用serialize()代替爆裂

存储的数据格式为JSON格式。 因此,您可以使用json_decode()函数获取数据并解析它们; 例如:

    $data = '{"value":["Authority ","Boards"],"order":["1","2"]}';
    $objJSON = json_decode($data);
    $values = $objJSON->value;  //contains "Authority ","Boards"
    $orders = $objJSON->order; //contains "1","2"

尝试这个

使用FIND_IN_SET函数:

SELECT t.*
  FROM YOUR_TABLE t
 WHERE FIND_IN_SET(3, t.ids) > 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM