PHP выводит все строки таблицы по столбцам 'Key' => 'Value' - Опыт

Пытается написать скрипт, который отображает информацию о столбцах всех строк таблицы, пары 'Key' => 'Value'

я попытался сделать следующие шаги: * 1. * получить все столбцы Поля 2. запустить запрос SELECT 3. эхо JSON значение Key as (таблица 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 as Table SELECT count;

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

Спасибо за ответы!

1 ответ

Ваш код может быть существенно упрощен:

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

Конечно, это будет работать правильно только в том случае, если ваш запрос на самом деле возвращает какие-либо результаты, но при условии, что это так, это буквально все, что вам нужно, чтобы повторить то, что вы делаете.

Другие вопросы по тегам