首页 文章

使用PHP中的SHOW TABLES Query结果从MYSQL数据库表中回显字段数据

提问于
浏览
0

我有一个PHP脚本,它在数据库中创建一个新表,预先 Build 字段:id,firstName,lastName和其他一些 . 表名由URL中的firstName和lastName的$ _GET确定 .

因此, url.com/script.php?fn=Bob&ln=Smith 产生表名BobSmith .

提交创建表的脚本时,页面将刷新,并且可以使用其他脚本将值插入表中 .

我要做的是创建一个单独的页面,显示所有表,同时回显firstName和lastName字段中的值,限制为1个结果,因为表中的所有行将具有相同的firstName和lastName .

所以我正在寻找的是一种显示SHOW TABLES查询结果的方法,但是使用每个表中的数据 .

例:

<?php
$query1 = mysql_query("SHOW TABLES");
$result1 = mysql_list_tables("customers")
$num_rows = mysql_num_rows($result1);

for ($i = 0; $i < $num_rows; $i) {
$table_name = mysql_tablename($result1, $i);
}

$query2 = "SELECT * FROM $table_name";
$result2 = mysql_query($query2);

while($row = mysql_fetch_object($result2)) { ?>
<a href="script.php?fn=<?php echo $row->firstName; ?>&ln=<?php echo $rowLastName; ?>"><?php echo $row->firstName; ?> <?php echo $row->LastName; ?></a>
<?php } ?>

我知道这不是真正的功能代码 . 我只是不确定如何将它们放在一起,或者我是否正确地接近这一点 .

1 回答

  • 0

    就像是:

    $sql = "SHOW TABLES;"
    $result = mysql_query($sql) or die(mysql_error());
    while($row = mysql_fetch_array($result)) {
       $table = $row[0];
       $sql2 = "SELECT * FROM `" . mysql_real_escape_string($table) . "`";
       $result2 = mysql_query($sql2) or die(mysql_error());
       while($data = mysql_fetch_assoc($result2)) {
              ... echo out table data here ...
       }
    }
    

    但从技术上讲,你不应该使用 show tables . 虽然它是一个方便的命令,"proper"方法是查询information_schema db:

    SELECT TABLE_NAME
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_SCHEMA='your_db_name'
    

相关问题