【发布时间】:2016-05-02 19:26:30
【问题描述】:
这是我的数据库:
我正在尝试将 to_id 为 4 的所有 from_id 获取到一个 json 对象,在该对象中,无法在堆栈中显示来自 from_id 的所有消息,并按不同的 time_sent 排序
我试过了:
代码: 数据库查询类(这是在 DBASE 类中)
public function query($sql){
$this->_last_query = $sql;
$result = mysqli_query($this->_conndb, $sql);
$this->displayQuery($result);
return $result;
} // end of query
public function displayQuery($result){
if(!$result){
$output = "database query failed :". mysqli_error($this->_conndb);
$output .= "last sql query was: ".$this->_last_query;
die($output);
}
else{
$this->_affected_rows = mysqli_affected_rows($this->_conndb);
}
} //End of query results
public function fetchAll($sql){
$result = $this->query($sql);
$out = array();
while($row = mysqli_fetch_assoc($result)){
$out[] = $row;
}
mysqli_free_result($result);
return $out;
}
消息类:
private $_table = 'messages';
public function getadminMessage(){
$sql = "SELECT group_concat(messg, time_sent, from_id) as from_id from {$this->_table} where to_id = 4 group by from_id";
return $this->db->fetchAll($sql);//IN THE DBASE CLASS ABOVE
}
在文件getadminmessage.php中
$message = new Message();
$results = $message-> getadminMessage();
echo json_encode($results);
然后我使用 getjson
$.getJSON("http://127.0.0.1/tum_old/custom/php/getadminmsg.php",
function(response){
console.log(response);
});
在我的日志中我得到
数据似乎是组连接的,但我也希望各种消息采用对象形式,即消息显示为对象,以便我可以轻松做到:
data.object[0].from_id[0].msg 获取 TRUE LOVE 作为消息
scais::::
【问题讨论】:
-
您对查询结果进行分组是否有原因?您可能可以只使用结果加上关联数组中的所有这些列。另外,请确保输出 json 格式的字符串 (php.net/json_encode)
-
我实际上正在开发一个聊天应用程序。在此代码中,用户可以从不同的人那里获取消息,并且一个人可以发送多条消息。因此,通过对它们进行分组,用户可以在一个捆绑包下查看多条消息.....您能否更清楚地使用结果