我正在处理一个个人项目,例如文档管理系统。 我正在数据库中创建与该文件夹同名的新文件夹和表。
我可以列出所有这些内容,并且当我单击HTML表格中列出的表格名称时,希望显示该表格内的所有内容。
但是我不知道桌子的名字。
我得到“ 0个结果”。
但是我可以在URL中看到“正确”表中的内容,因为它说出了我的表的名称。
我知道问题出在view.php的SELECT语句中的某个地方,我不知道该如何选择我不知道:-)名称的表
有人可以帮我吗?
非常感谢。
这是我的索引代码,其中我将DB中的所有表都列为按钮:
<div class="container-fluid">
<div class="row">
<div class="col-md-4 col-xl-4 text-center ml-sm-2 ml-md-5 ml-lg-5 mt-5">
<div class="alert alert-danger mb-0"><strong>TABLES from DATABASE:</strong></div>
<table class="table table-bordered table-hover text-center">
<tr class="title">
<th>Folder Name:</th>
</tr>
<?php
$conn = mysqli_connect("localhost", "root", "", "folder");
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT table_name FROM information_schema.tables where table_schema='folder';";
$result = $conn-> query($sql);
if ($result) {
while ($row = $result-> fetch_assoc()) {
echo "<a href='view.php?". $row['table_name'] ."' ><span style='font-size: 19px; color: #3277b6; margin-right: 15px;'><i class='far fa-eye'></i></span></a>";
}
}
else {
echo "0 results";
}
$conn-> close();
?>
</table>
</div>
这是view.php代码:
<body>
<div class="container">
<div class="row mt-5 ml-5">
<div class="col-md-8 col-xl-11 text-center ml-sm-2 ml-md-5 ml-lg-5 mt-5">
<div class="alert alert-danger mb-0">
<a href="index.php" class="btn btn-dark mr-5" role="button">Go Back</a>
</div>
<div style="overflow-x:auto;">
<table class="table table-bordered table-hover text-center">
<tr>
<th>Name:</th>
<th>Create at:</th>
</tr>
<?php
$conn = mysqli_connect("localhost", "root", "", "folder");
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM information_schema.tables where table_name = ?";
$result = $conn-> query($sql);
if ($result) {
while ($row = $result-> fetch_assoc()) {
echo "<tr>
<td>".$row['name']."</td>
<td>".$row['created_at']."</td>
</tr>";
}
echo "</table>";
}
else {
echo "0 results";
}
$conn-> close();
?>
</table>
</div>
</div>
</div>
</div>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JSs -->
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.bundle.min.js"></script>
<script src="js/theme-script.js"></script>
</body>
</html>
答案 0 :(得分:1)
更改以下行:
echo "<a href='view.php?". $row['table_name'] ."' ><span style='font-size: 19px; color: #3277b6; margin-right: 15px;'><i class='far fa-eye'></i></span></a>";
到
echo "<a href='view.php?table_name=". $row['table_name'] ."' ><span style='font-size: 19px; color: #3277b6; margin-right: 15px;'><i class='far fa-eye'></i></span></a>";
然后更改以下行:
$sql = "SELECT * FROM information_schema.tables where table_name = ?";
到
$sql = "SELECT * FROM information_schema.tables where table_name = '{$_REQUEST['table_name']}'";
需要注意的是,这实际上是一个很大的安全隐患,并且需要确保在将变量注入SQL代码之前清除该变量。
最后一件事,您实际上并没有进行任何错误捕获,因此请更改此内容:
else {
echo "0 results";
}
到
else {
echo $conn->error;
}
答案 1 :(得分:0)
$sql = "SELECT " .$varible. " FROM information_schema.tables where table_schema='folder'";
$result = $conn->query($sql);