PHP&MYSQL:获取所有列,从行中选择*并对结果进行json编码
我试图从mysql中获取一个数组,并用它的值打印每一列 这就是我到目前为止所做的: 获取所有列: Foreach列名获取数据,其中用户id=$SESSION['id'] 这个很好用。问题是打印的阵列如下所示:PHP&MYSQL:获取所有列,从行中选择*并对结果进行json编码,php,mysql,json,printing,encode,Php,Mysql,Json,Printing,Encode,我试图从mysql中获取一个数组,并用它的值打印每一列 这就是我到目前为止所做的: 获取所有列: Foreach列名获取数据,其中用户id=$SESSION['id'] 这个很好用。问题是打印的阵列如下所示: {"column1":"data"}{"column2":"data"}{"column3":"data"} 相反,我希望json编码打印: 您可以删除所有这些,因为它是多余的 $query = "SHOW COLUMNS FROM user_settings"; $resultx =
{"column1":"data"}{"column2":"data"}{"column3":"data"}
相反,我希望json编码打印:
您可以删除所有这些,因为它是多余的
$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_*函数会贬值。尝试以下操作:
$newquery = "SELECT * FROM user_settings WHERE uid = '" . $_SESSION['id'] ."'";
$newresult = mysql_query($newquery);
print json_encode(mysql_fetch_array($newresult));
我认为您不需要其余的。为什么要获取列,然后查询同一个表中的所有列?但是在一个不相关的注释中,尝试将打印移到foreach循环之外,因为我正在学习php。我不知道我还能怎么做。你能告诉我吗?@DavidJones如果我把打印移到foreach循环之外,我只得到:{column3:data}为什么你需要一个循环。我怀疑您是否有过两个具有相同id的用户,因此userid是唯一的。我得到以下信息:[{0:data1,column1:data1,1:data2,column2:data2,2:data3,column3:data3]它还打印每个列的编号及其值?@jQuerybeast我认为您需要使用mysql_fetch_assoc而不是mysqk_fetch_数组我已经多年没有使用这些函数了!@DavidJones谢谢
$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++;
}
$json = array();
$newquery = "SELECT * FROM user_settings WHERE uid = '" . $_SESSION['id'] ."'";
$newresult = mysql_query($newquery);
print json_encode(mysql_fetch_assoc($newresult));
$newquery = "SELECT * FROM user_settings WHERE uid = '" . $_SESSION['id'] ."'";
$newresult = mysql_query($newquery);
print json_encode(mysql_fetch_array($newresult));