我有一个像这样的表结构:
id,name,age,etc...
我想获取所有条目并在我的网站上以表格结构显示它们,就像它们在MYSQL表本身中组织一样:
| id | name | age |
| --- | ----- | --- |
| 1 | Peter | 23 |
| 2 | Susan | 34 |
| 3 | Tom | 45 |
使用以下代码我可以获得所有名称:
$query = "SELECT * FROM users";
if ($result = $link->query($query)) {
while($row = $result->fetch_assoc()){
echo "name: " . $row['name'] . "<br />";
}
}
结果如下:
name: Peter
name: Susan
name: Tom
但我需要使用$row['name']
单独指定每列。如果有> 100列,我需要指定它们吗?
有没有办法在JSON响应中从我的表中获取所有数据(包括所有列名称):
{"users":[
{"id":"1", "name":Peter", "age":"23"},
{"id":"2", "name":"Susan", "age":"34"},
{"id":"3", "name":"Tom", "age":"45"}
]}
答案 0 :(得分:4)
是的,只需使用以下内容:
foreach($row as $colName => $colValue)
在你的while循环中。
答案 1 :(得分:0)
您可以像这样使用foreach循环
foreach($result as $column=>$value)
{
echo $column." : ".$value;
}
但是,为什么你担心表中的100列呢?根据规范化,单个表中不会有这么多列。但是,即使你有,你的列名也不会因为命名惯例如column_name而显示用户。
使用json_encode转换为json。
答案 2 :(得分:0)
$query = "SELECT * FROM users";
$result = mysqli_query($link, $query);
$users=array();
$response=NULL;
if ($result = $link->query($query)) {
while($row = $result->fetch_assoc()){
$users['users'][]=$row;
}
$response=json_encode($users);
}
答案 3 :(得分:0)
尝试如下:
$query = "SELECT * FROM user";
$all_users = array();
if ($result = $link->query($query)) {
$users = array();$i=0;
while($row = $result->fetch_assoc()){
$users[$i]['id'] = $row['id'];
$users[$i]['name'] = $row['name'];
$users[$i]['age'] = $row['age'];
$i++;
}
}
$all_users['users'] = $users;
echo json_encode($all_users);