为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 SQL SHOW TABLES 语句存储已排序表的列表?

如何使用 SQL SHOW TABLES 语句存储已排序表的列表?

PHP
千巷猫影 2023-07-08 20:12:39
我使用以下代码来显示所有表,但如何将表存储到排序数组中:$sql = "SHOW TABLES FROM ".$counter_database." ORDER BY TABLES DESC";$result = $conn->query($sql);$outArray = array();while($table = $result->fetch_assoc()) {    $outArrayx[] = $table;}以下代码吐出数据:foreach ($outArrayx as $key => $value) {    foreach ($value as $keys => $values) {        $sql = "SELECT * FROM ".$values." WHERE user_id='0'";         $result = $conn->query($sql);        if (strpos($values, "ckia") === 0) {            while($table = $result->fetch_assoc()) {                $outArray[] = $table;            }        }    }}
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

将表名放入 PHP 数组中,然后对数组进行排序。而且如果不将其嵌套在行中,则在处理它时就不需要嵌套循环。


您不能使用ORDER BYwith SHOW TABLES,但可以使用LIKEwith 来仅选择符合模式的表。if那么你的循环中就不需要该语句了。


$sql = "SHOW TABLES FROM ".$counter_database." LIKE 'ckia%'";

$result = $conn->query($sql);

$outArray = array();

while($table = $result->fetch_row()) {

    $outArrayx[] = $table[0];

}


sort ($outArrayx);


foreach ($outArrayx as $table) {

    $sql = "SELECT * FROM ".$table." WHERE user_id='0'"; 

    $result = $conn->query($sql);

    while($row = $result->fetch_assoc()) {

        $outArray[] = $row;

    }

}


查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信