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

时间:2014-04-10 21:36:32

标签: php mysql sql database

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

因此,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 :(得分: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。虽然这是一个方便的命令,但&#34;适当的&#34;方法是查询information_schema db:

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