查找表名称&然后从该表中获取数据。

时间:2014-04-22 08:29:06

标签: php mysql sql

Model

   ID     Model
    1      1
    2      2
    3      4
    4      10

Model-table

ID  model_id   table_name
1     1          table1
2     3          table2
3     4          table3

注意:每个模型都需要table_name并不重要。

我找到了模型宽度为id 3的table_name,它是table2。找到它是如此简单,我没有看到在这里写我的sql的原因。找到table2后,我应该从table2中选择并查找所有参数。在这种情况下,我应该写第二个SQL。这是table2

的结构

注意:我们可以使用3找到model_id的所有参数。

table2

ID    model_id   param1      param2     param3
1          3        0           5          10

我的问题: 我正在寻找方法,首先在model_table中找到合适的model_id并获取table_name,然后从table_name中选择THEN SELECT并使用1 SQL获取所有参数。

注意:我的PHP PAGE上有id和model_id变量。因此,我们需要使用Limit 1并将适当的数据提取到1 id和model_id。

2 个答案:

答案 0 :(得分:0)

您必须在两个查询中执行此操作,因为表名不能是动态的。您的代码应如下所示:

$mysqli = new MySQLi(/*connection details*/);

// Fetch table name
$query = "SELECT table_name 
    FROM model-table 
    WHERE model_id = 3";
$result = $mysqli->query($query);
$row = $result->fetch_assoc($result);
$table = $row['table_name'];

// Fetch data from table2
$query = "SELECT ID, model_id, param1, param2, param3 
    FROM $table";
$result = $mysqli->query($query);
while($row = $mysqli->fetch_assoc($result)) {
    // do something with the data from the table...
}

答案 1 :(得分:0)

不是你想要的,但这也可以帮到你

查找数据库的all the tables

SHOW TABLES    

查找表格的all the columns

DESCRIBE table_name