我正在尝试从mysql中获取一个数组,并打印每个列及其值。
到目前为止,这就是我所拥有的:
获取所有列:
$query = "SHOW COLUMNS FROM user_settings";
$resultx = mysql_query($query);$temp=0;$p = array();
while ($row = mysql_fetch_array($resultx)) {
$p[$temp] = $row["Field"];$temp++;
}Foreach列名获取数据,其中用户id = $SESSION'id'
foreach ($p as $f) {
$json = array();
$newquery = "SELECT * FROM user_settings WHERE uid = '" . $_SESSION['id'] ."'";
$newresult = mysql_query($newquery);
while($newrow = mysql_fetch_array($newresult)) {
$json[$f] = $newrow[$f];
}
print json_encode($json);
}这个很好用。问题是打印的数组是这样的:
{"column1":"data"}{"column2":"data"}{"column3":"data"}相反,,我想让json编码打印
[{"column1":"data","column2":"data","column3":"data"}}发布于 2014-11-19 16:14:03
您可以删除所有这些,因为它是多余的。
$query = "SHOW COLUMNS FROM user_settings";
$resultx = mysql_query($query);$temp=0;$p = array();
while ($row = mysql_fetch_array($resultx)) {
$p[$temp] = $row["Field"];$temp++;
}还删除了foreach循环,因此只剩下查询和那个查询的while循环了。
$json = array();
$newquery = "SELECT * FROM user_settings WHERE uid = '" . $_SESSION['id'] ."'";
$newresult = mysql_query($newquery);
print json_encode(mysql_fetch_assoc($newresult));这应该使json_encode()函数编码一个多维的结果数组。
还可以尝试删除mysql_*函数,并使用mysqli_*函数或PDO,因为mysql_*函数是折旧的。
发布于 2014-11-19 16:14:21
试试这个:
$newquery = "SELECT * FROM user_settings WHERE uid = '" . $_SESSION['id'] ."'";
$newresult = mysql_query($newquery);
print json_encode(mysql_fetch_array($newresult));我不认为你需要剩下的。
https://stackoverflow.com/questions/27021422
复制相似问题