如何从mysql结果中获取表名?

Muk*_*n R 5 php mysql join inner-join

MySQL查询如下

SELECT  t1.*,  t2.*, t3.*, t4.*, t5.*, t6.*
FROM table1 t1
INNER JOIN table2 t2
INNER JOIN table3 t3
INNER JOIN table4 t4
INNER JOIN table5 t5
INNER JOIN table6 t6
order by t1.updated_time, t2.updated_time, t3.updated_time, t4.updated_time, t5.updated_time, t6.updated_time desc
Run Code Online (Sandbox Code Playgroud)

从上面的查询中,我需要带有各自表名的结果,例如

Array(
    [0] => stdClass Object
        (
            [id] => 1
            [cloumn1] => data1
            [column2] => table3
            [updated_time] => data1
        )
    [1] => stdClass Object
        (
            [id] => 2
            [cloumn1] => data1
            [column2] => table1
            [updated_time] => data2
        )
)
Run Code Online (Sandbox Code Playgroud)

这些表有超过 15 列,这些列可能会有所不同。
如何通过修改查询来达到结果?

小智 3

进行查询后,您可以进行 foreach 循环来获取所有列名称。像这样的东西

while($row = mysqli_fetch_assoc($query)){
    foreach($row as $key => $value){
        echo "$key=$value";
    }
}
Run Code Online (Sandbox Code Playgroud)

更新

如果你想在数据库中获取表名,你可以尝试这样的事情。

$sql = "SHOW TABLES FROM database";
$result = mysqli_query($conn,$sql);

while ($row = mysqli_fetch_row($result)) {
    echo "Table: {$row[0]}\n";
}
Run Code Online (Sandbox Code Playgroud)

更新

首先我们需要获取表名。由于您不知道表名,我们可以使用此代码获取表名

$tables = array();
$sql = "SHOW TABLES FROM database";
$result = mysqli_query($conn,$sql);

while ($row = mysqli_fetch_row($result)) {
    $tables[] = $row[0];
}
Run Code Online (Sandbox Code Playgroud)

如果您有表格,您可以将它们添加到数组中,跳过上面的代码

$tables = array("table1","table2","table3");
Run Code Online (Sandbox Code Playgroud)

获得所有表后,我们可以从数据库开始

$data = array();
foreach($tables as $table){
    $query = "select * from $table";
    $res = mysqli_query($conn,$query);
    while($row = mysqli_fetch_assoc($res)){
        $i=1;
        foreach($row as $key => $value){
            $data[$i][$key][$value];
            $i++;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

根据您的需要更新代码。这是一个例子