2014-03-04 84 views
0

在mysql表中我有一组记录。我想让他们想要在json响应下显示。从数据库获取数据显示为json响应

"results":[ 

    { 
     "timestamp":"2014-03-04 17:26:14", 
     "id":"440736785698521089", 
     "category":"sports", 
     "username":"chetan_bhagat", 
     "displayname":"Chetan Bhagat" 
    } 

我从数据库中获取上面的值,即时间戳,id,类别,用户名。如何以类似上面的json响应形式显示结果?

UPDATE:

我以这种方式获取数据:

$con = mysqli_connect('127.0.0.1', 'root', '', 'mysql'); 
      if (mysqli_connect_errno()) 
      { 
       echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
       return; 
      } 
      $today = date("Ymd");   

      $result = mysqli_query($con,"SELECT url,img_url,sentiment,title,category from frrole_cateogry_article where category='".$category."' AND today <= '".$today."' AND title != '' AND img_url != '' order by url desc limit 3 "); 
      while ($row = @mysqli_fetch_array($result)) 
      { 
       $url = $row['url']; 
       $img_url = $row['img_url']; 
       $screen_name = $row['screen_name']; 
      } 
+0

入住这一点 - http://stackoverflow.com/questions/6818441/sql-server-select-to-json-function – TechMaze

+0

@TechMaze,这个问题是有关Microsoft SQL Server,而不是MySQL。 –

+0

@BillKarwin:对不起,我正在使用MySql –

回答

1

试试这个...

 $con = mysqli_connect('127.0.0.1', 'root', '', 'mysql'); 
     if (mysqli_connect_errno()) 
     { 
      echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
      return; 
     } 
     $today = date("Ymd");   

     $result = mysqli_query($con,"SELECT url,img_url,sentiment,title,category from frrole_cateogry_article where category='".$category."' AND today <= '".$today."' AND title != '' AND img_url != '' order by url desc limit 3 "); 
     while ($row = @mysqli_fetch_array($result)) 
     { 
      json_encode($row);    
     } 
+0

谢谢,请你考虑一些来自不同表格的值以及需要在json中编码的情况。像'screen_name'和'id'来自'frrole_cateogry_user'表,它们也被包含在同一个json响应中。你的帮助,将不胜感激 –

+0

ohh是的确保..你可以使用'mysqli Join queries'来加入这两个表,所以你会得到'json response'中的另一个表字段......以'select *从(A.id = B.fk_id)......'上的表A连接表B' –

1

获取搜索结果的传统方式:

$data['results'] = $stmt->fetchAll(PDO::FETCH_ASSOC); 

然后一切都转换成JSON。巴姆!

$results = json_encode($data); 

这比在您的SQL查询中尝试格式化JSON要容易得多。

详情参见:


既然你使用的mysqli替代PDO,并以程序的方式使用它,你会以不同的方式取出行:

while ($data['results'][] = mysql_fetch_assoc($result)); 

然后你可以像上面展示的那样json_encode()。

+0

感谢Bill,在我的UPDATE之后有任何修改吗?你的答案将被标记为正确的 –