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]);
Конечно, это будет работать правильно только в том случае, если ваш запрос на самом деле возвращает какие-либо результаты, но при условии, что это так, это буквально все, что вам нужно, чтобы повторить то, что вы делаете.