2017-04-21 72 views
0

我有表名为类别其中包含同一数据库中其他表的名称。我想从类别表中获取表名,然后从数据库中的每个表中获取数据。到目前为止,我有下面这段代码:使用PHP循环从表中获取包含数据库表名称的表数据

$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]; 
    } 
    } 
+0

您的问题在哪里? – modsfabio

回答

0

第二个查询必须是不同的。

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

TBH - 我不知道,如果这个设计原则是特别好,就需要一个很好的理由做这种方式和它可能会导致什么样的问题有很好的理解。听起来更像是一个很好的噱头,而不是一个坚实的要求。

+0

类别表包含同一数据库中其他表的名称。简单地说,我为电子商务网站编写代码,所以我将产品存储在类别中。需要从类别表中获取类别,然后获取表数据。 –

0

首先,您的设计连接到数据库并不是那么好,请检查下面的代码以正确连接到它。

<?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

+0

请给我看这个代码的循环样本@VihangaBandara –

相关问题