如何显示mysql数据库表及其各自的列名

时间:2017-12-06 21:37:19

标签: php mysql database

我在一个叫做汽车的mysql数据库中有几个表。

在下面的database.php中,我遍历数据库中的所有表并显示它们。我在每个表中传递一个元素,一旦cliked导致table_fields.php

database.php中

<ul class = "list-group">

<?php
error_reporting(E_ALL ^ E_DEPRECATED);

echo"<p class = 'jumbotron'>Table List</p>";



$link = mysql_connect("localhost","root","");

mysql_select_db("automobile") or die(mysql_error());

$result = mysql_query("show tables");


while($table = mysql_fetch_array($result)) { // go through each row that was 
 returned in $result

 echo"<li class='list-group-item'>";
 echo"<a href= 'table_fields.php'>";

 echo $table[0]. "<BR>";    // print the table that was returned on that row.

 echo "</a>";
 echo "</li>";

}
?>

在下面的table_fields .php中,我创建了一个显示第一个表中列的脚本。表名为'amin'。

table_fields.php

<html>

<head>

<script src = "jquery.min.js"></script>
<script src = "bootstrap.min.js"></script>
<script src = "angular.min.js"></script>
<script src = "form.js"></script>

<link rel = "stylesheet" href ="bootstrap.min.css" >



</head>

<body class = "container">

<?php

error_reporting(E_ALL ^ E_DEPRECATED);

mysql_connect("localhost", "root", "") or die("Connection Failed");
mysql_select_db("automobile")or die("Connection Failed");
$query = "select * from amin";
$result = mysql_query($query);
$numcolumn = mysql_num_fields($result);

echo "<table class ='table table-striped table-bordered' style ='width:100%'>";
echo "<tr>";

for ( $i = 0; $i < $numcolumn; $i++ ) {
  $columnnames = mysql_field_name($result, $i);

  echo "<th>".$columnnames. "</th>";

 }


   echo "</tr>";
   echo "</table>";
  ?>

 </body>
 </html>

你可能已经注意到table_fields.php中的代码只显示'amin'表中的列,但是它被database.php中的所有元素引用。因此无论我点击哪个表,我都会看到'amin'表的列。

我的问题是我如何将表名传递给代码逻辑,以便table_fields.php文件中的每个表显示其各自的列而不是amin表中的列?

1 个答案:

答案 0 :(得分:0)

您需要将表名作为参数传递给table_fields.php文件。最简单的方法是作为查询字符串参数执行此操作。

echo '<a href="table_fields.php?table=' . $table[0] . '">' . $table[0] . '</a>';

然后在table_fields.php文件中,您可以使用$table = $_GET['table'];访问表名。

但我建议非常小心不要使用来自网址的未经过抽取的输入。所以你应该使用准备好的PDO语句, NOT 使用mysql函数。