【问题标题】:How to get data from mysql db which saved as an array如何从保存为数组的mysql db中获取数据
【发布时间】:2014-03-27 17:04:33
【问题描述】:

我想从我的 mysql db 中获取数据,但有一列将数据保存为数组... 我怎样才能分别获得这些值。请指教...

这就是下拉值的数据保存在数据库中的方式

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

mysql查询

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

我想要的是将Authrity和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);
?>

【问题讨论】:

  • 获取数据后使用反序列化转换成数组
  • @Karthick Kumar Ganesh:我写了一个查询来获取数据,但它的输出与保存在数组中的相同。你要我反序列化查询结果是吗?
  • 为什么要将它转换为 json 数组?
  • @Karthick Kumar Ganesh:我将它用于我的 jquery 自动完成功能,并且这个 json 数组作为源 url 传递

标签: php mysql arrays database multiple-columns


【解决方案1】:

存储的数据格式为 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"

【讨论】:

    【解决方案2】:

    你可以像这样使用 implode 将数组更改为字符串

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

    或者你甚至可以使用serialize() 而不是内爆

    【讨论】:

    【解决方案3】:

    试试这个

    使用 FIND_IN_SET 函数:

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

    【讨论】:

      【解决方案4】:

      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>';
      });
      

      【讨论】:

      • 我想在我的 json 编码代码上使用它,我也更新了我的问题,如何将它用于该代码。请指教
      • 您应该创建一个关联数组,json_encode 会将其转换为 javascript 对象,然后您可以使用 jquery 中的 $.each() 来遍历您的对象。
      • 我用这个来做 jquery 自动完成 jQuery(function(){ jQuery("#searchp").autocomplete({ ,我怎么能放 $.each,请指教
      猜你喜欢
      • 2022-07-12
      • 1970-01-01
      • 1970-01-01
      • 2018-03-17
      • 2019-09-24
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      • 2021-11-09
      相关资源
      最近更新 更多