Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP&MYSQL:获取所有列,从行中选择*并对结果进行json编码_Php_Mysql_Json_Printing_Encode - Fatal编程技术网

PHP&MYSQL:获取所有列,从行中选择*并对结果进行json编码

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 =

我试图从mysql中获取一个数组,并用它的值打印每一列

这就是我到目前为止所做的:

获取所有列:

Foreach列名获取数据,其中用户id=$SESSION['id']

这个很好用。问题是打印的阵列如下所示:

{"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));