【问题标题】:Use PHP loop to fetch tables data from the table which contain names of database tables使用 PHP 循环从包含数据库表名称的表中获取表数据
【发布时间】:2017-04-21 14:24:43
【问题描述】:

我有一个名为 category 的表,其中包含同一数据库中其他表的名称。我想从 category table 中获取表名,然后从 db 中从每个表中获取数据。到目前为止,我有以下代码:

    $db = new mysqli('localhost', 'root', '', 'db_cat');
    if($db){
    //    $q = "SELECT TABLE";
    //    $echo = $db->query($q);
    //    echo $echo;
    // $result = $db->query("SHOW TABLES");
    $qCat="SELECT * FROM product_category";
    $cat_query= $db->query($qCat) or die(mysql_error());
    while ($fetch=  $cat_query->fetch_object()) 
    {
    $cat_id=$fetch->id;
    $category=$fetch->category;
    $p_cat=str_replace(" ","_",strtolower($category).'_categories'); 
    //if(strlen($category)>22){$fine_product_name=  substr($service, 0,19).'...';}else{ $fine_product_name=$category;}
$result = $db->query("SHOW TABLES");
       while($row = $result->fetch_array()){
            $tables[] = $row[0];
    }
    }

【问题讨论】:

  • 你的问题在哪里?

标签: php loops mysqli


【解决方案1】:

第二个查询必须不同。

$result = $db->query("SELECT * FROM $category"); 
   while($row = $result->fetch_array()){
        $tables[] = $row[0];
}
print_r($tables);

【讨论】:

    【解决方案2】:

    首先你连接数据库的设计不是很好,请检查下面的代码以获得正确的连接方式。

        <?php
    
        $con=mysqli_connect("localhost","root","","db_cat"); 
    
    //servername,username,password,dbname
    
        if (mysqli_connect_errno())
        {
            echo "Failed to connect to MySql: ".mysqli_connect_error();
        }
    
    ?>
    

    这里是从一个表中获取数据的示例代码(这个表名在另一个表中)。

     $get_table_name ="SELECT TableName FROM table_name";           
        $get_name=mysqli_query($con,$get_table_name);
        $count=0;
    
        while($row_name=mysqli_fetch_array($get_name)){
    
            $count++;
            $tbName=$row_name['TableName'];             
            $_SESSION['table_name'][count]=$tbName;
    
        }
    

    这将向您展示如何从一个表中获取数据。您可以使用 For 循环来获取所有表格

     $table=$_SESSION['table_name'][1];
    
        $get_table ="SELECT * FROM $table";
    
        .... // Normal way of fetching data
    

    您可以尝试根据此调整您的代码并改进它。

    更多参考请参考http://php.net/manual/en/book.mysqli.php

    【讨论】:

    • 请给我看这个代码@VihangaBandara的for循环示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 2011-03-07
    • 2011-06-06
    相关资源
    最近更新 更多