【问题标题】:generate json array with two data values生成具有两个数据值的 json 数组
【发布时间】:2014-04-23 02:46:09
【问题描述】:

请告诉我如何在下面的 json 数组中获取值 'content' 和 'categories' 的结果。目前它只为 'content' 提供结果

     $abc=$_GET["term"];

$query=mysql_query("
SELECT  b.title as category ,a.title as content 
FROM  tb_content a, tb_categories b
WHERE ( b.title like '%".$abc."%' 
OR a.title like '%".$abc."%')
AND a.categories_id=b.id
AND b.parent_id=81
");
$json=array();
    while($display=mysql_fetch_array($query)){
         $json[]=array(
                    'value'=> $display["content"],
                    'label'=>$display["content"],

                        );

【问题讨论】:

  • 可能是因为您发送的是两次内容而不是内容和类别?
  • @Kevin B :我想显示与内容和类别相关的结果。你认为我应该把内容放在第一位,类别放在第二位吗?
  • 您希望在数组中的哪个位置显示类别?如果 value 和 label 都包含相同的内容,为什么还需要它们?
  • @Kevin B : b.title as category => 这显示类别名称,其中 as a.title 作为内容 => 这显示类别数据。我想同时显示。请指教

标签: jquery mysql sql ajax arrays


【解决方案1】:

给你:

  1. 在查询中使用变量之前,您始终应该对变量进行转义。
  2. 您没有关闭您的 while 循环。
  3. 值和标签使用相同的键。
  4. 删除 while 循环中的最后一个逗号。
  5. 按照我的代码:

     $abc = mysql_real_escape_string( $_GET["term"] );
    
     $query = mysql_query("
                     SELECT  b.title as category ,a.title as content 
                     FROM  tb_content a, tb_categories b
                     WHERE ( b.title like '%".$abc."%' 
                     OR a.title like '%".$abc."%')
                     AND a.categories_id=b.id
                     AND b.parent_id=81
                    ");
      $json = array();
    
      while ( $display = mysql_fetch_array($query) )
      {
          $json[]=array(
                'value' => $display["content"],
                'label' => $display["category"]
          );
       }
    
     //output:
    
     print_r($json); //as an array
    
     echo json_encode($json); // as a json string
    

【讨论】:

    猜你喜欢
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    相关资源
    最近更新 更多