从表中获取整个内容

时间:2016-02-02 10:02:05

标签: php mysql json mysqli

我有一个像这样的表结构:

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"}
]}

4 个答案:

答案 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);