【问题标题】:Echo field data from MYSQL database table using results of a SHOW TABLES Query in PHP使用 PHP 中的 SHOW TABLES 查询结果从 MYSQL 数据库表中回显字段数据
【发布时间】:2014-05-24 20:03:37
【问题描述】:

我有一个 PHP 脚本,它在数据库中创建一个新表,该表预先建立了以下字段:id、firstName、lastName 和其他一些字段。表名由来自 URL 的 firstName 和 lastName 的 $_GET 确定。

所以,url.com/script.php?fn=Bob&ln=Smith 产生表名 BobSmith。

当创建表格的脚本被提交时,页面刷新并且可以使用另一个脚本将值插入到表格中。

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

所以我正在寻找一种显示 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 } ?>

我知道那不是真正的功能代码。我只是不确定如何将它们放在一起,或者我是否以正确的方式接近它。

【问题讨论】:

    标签: php mysql sql database


    【解决方案1】:

    类似:

    $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。虽然它是一个方便的命令,但“正确”的方法是查询 information_schema db:

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

    【讨论】:

    • 干得好,谢谢。做了几个星期,但这让我到达了我需要的地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 2014-03-26
    • 1970-01-01
    • 2020-10-01
    • 2014-04-24
    • 2012-04-04
    相关资源
    最近更新 更多