[英]Echo field data from MYSQL database table using results of a SHOW TABLES Query in PHP
我有一个PHP脚本,该脚本在数据库中创建一个新表,该表预先建立了以下字段: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 } ?>
我知道那不是真正的功能代码。 我只是不确定如何将所有内容组合在一起,或者不确定是否正以正确的方式进行处理。
就像是:
$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数据库:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='your_db_name'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.