PHP通过' Key'回显所有表格行=> '值'专栏 - 经验

时间:2014-03-11 21:31:23

标签: php mysql sql json array-push

尝试编写脚本回显所有表格行的列信息,'键'=> '价值'对

我尝试了以下步骤: * 1。 *获取所有列字段 2。运行SELECT查询 3。 echo JSON value Key as(table Fields count)

$table_name = 'Users';
$fieldname=array(); 
$fieldnames=array();
$fieldnames_C; //fieldNames count


//--------------------------------------------- get colums 'key' array + count;
$result = mysql_query("SHOW COLUMNS FROM {$table_name}");
if (mysql_num_rows($result) > 0) {

 while ($row = mysql_fetch_assoc($result)) {

           $fieldname = $row['Field']; 
           array_push($fieldnames, $fieldname);    //ARRAY ADD OBJECT       
       }       

    $fieldnames_C =  count($fieldnames);
    echo($fieldnames_C); 
}


    $users = array();
    $query = mysql_query("SELECT * FROM {$table_name}");                
//for table count
    while ($row = mysql_fetch_array($query))
        {                   
//for columns count  
            $i = 0;
            while($i < $fieldnames_C)
            {                   
            $fieldname = $fieldnames[$i];           


             $users[] = array(     

            $fieldname => $row[$fieldname]

            );

            $i++;
            }



          array_push($users, $fieldname => $row[$fieldname]);

        }


          echo json_encode(array('response' => $users));                
          mysql_close($connection);
?>

输出如下:

[{"PID":"79"},{"UserID":"ofir"},{"UserName":"ofir name"},{"UserLat":"32.0511"},{"UserLon":"34.8029"}]

尝试这样的输出: 简单的JsonArray作为表SELECT计数;

[{"PID":"79","UserID":"ofir","UserName":"ofir name","UserLat":"32.0511","UserLon":"34.8029"]

感谢您的回答!

1 个答案:

答案 0 :(得分:2)

您的代码可以大大简化:

$data = array();
$result = mysql_query("SELECT * FROM {$table_name}");
while($row = mysql_fetch_assoc($result)) {
   $data[] = $row;
}
$field_names = array_keys($data[0]);

当然,只有当你的查询实际返回任何结果时,这才能正常工作,但假设确实如此,这实际上只需复制你正在做的事情。