Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MySqli如何从我不知道名称的表中选择所有内容?_Php_Mysql_Html_Mysqli - Fatal编程技术网

PHP MySqli如何从我不知道名称的表中选择所有内容?

PHP MySqli如何从我不知道名称的表中选择所有内容?,php,mysql,html,mysqli,Php,Mysql,Html,Mysqli,我在做一个个人项目,比如文档管理系统。 我正在数据库中创建与文件夹同名的新文件夹和表 我可以列出所有这些,我想当我点击HTML表格中列出的表格名称时,显示该表格中的所有内容 但是我不知道桌子的名字 我得到了0个结果 数据库表的屏幕截图-> O结果的屏幕截图 -> 列出表格的屏幕截图-> 但是,我可以在URL中看到我在正确的表中,因为它显示了我的表的名称 我知道问题出在view.php中的SELECT语句中,我不知道如何选择我不知道名称的表:- 有人能帮我吗 非常感谢 这是我的索引代码,我将D

我在做一个个人项目,比如文档管理系统。 我正在数据库中创建与文件夹同名的新文件夹和表

我可以列出所有这些,我想当我点击HTML表格中列出的表格名称时,显示该表格中的所有内容

但是我不知道桌子的名字

我得到了0个结果

数据库表的屏幕截图-> O结果的屏幕截图 -> 列出表格的屏幕截图-> 但是,我可以在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>

更改以下行:

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>";
$sql = "SELECT * FROM information_schema.tables where table_name = ?";

需要注意的是,这是一个相当大的安全风险,您需要确保在将变量注入到SQL代码之前清除该变量

最后一件事,您实际上并没有执行任何错误捕获,所以请更改以下内容:

else {
echo "0 results";
}


这段代码毫无意义:$sql=SELECT*FROM information_schema.tables,其中table_name=$结果=$conn->query$sql;您需要通过使用一个准备好的语句并将一个值绑定到该语句来设置table_name值。另外,您应该将url更改为像eview.php?table='这样的内容$行['table_name']以便使用$\u GET variableNote轻松检索。注意:mysqli的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的mysql_查询接口混淆。在你对程序性风格投入太多之前,值得换一种。示例:$dB=新的MySqLi…和$dB>准备…程序接口是当MyQLIAPI被引入并且理想地不应该用于新代码时的PHP 4时代的人工制品。考虑使用A来解决像这样的问题。它们为您提供了将代码组织到适当的模型、视图和控制器上下文中所需遵循的模式,并避免了在HTML、PHP、SQL和JavaScript都混杂在一起的情况下出现令人困惑的问题。框架有很多种形式,从真正的精益型到功能非常全面的智能型,中间有很多点。为什么不让文件夹成为你的内容表的一列呢?@mario这是什么意思?谢谢@dearsina我改变了这一点,但它仍然显示0结果:/正如你所说的,在最后一次使用它要好得多part@Blagojce,试试这个,定义完$sql变量后,立即执行var_dump,获取sql查询并在phpMyAdmin中运行,然后查看您得到的结果。哦,天哪,您正在尝试查询您的表吗?好的,您的SQL查询应该改为从{$\u请求['table\u name']}中选择*。@Blagojce,我很高兴我们对其进行了排序。在使用这些代码之前,请先阅读SQL注入。
$sql = "SELECT * FROM information_schema.tables where table_name = ?";
$sql = "SELECT * FROM information_schema.tables where table_name = '{$_REQUEST['table_name']}'";
else {
echo "0 results";
}
else {
echo $conn->error;
}