Php 多页选择

Php 多页选择,php,pdo,Php,Pdo,我正在使用一个从数据库读取页面的代码。它在PDO、PHP上运行。不管怎样,我想知道我该怎么做才能让它从两张桌子上读出来?例如,在当前时间,它运行“pages”,但我可以让它也从“pages\u default”读取页面吗。我的意思不是,因为它只显示在两个表中都有名称的页面,而是用相似的字段分隔表 <?php if (isset($_GET['p'])) { $stmt = $dbh->prepare('SELECT * FROM pages WHERE shortname

我正在使用一个从数据库读取页面的代码。它在PDO、PHP上运行。不管怎样,我想知道我该怎么做才能让它从两张桌子上读出来?例如,在当前时间,它运行“pages”,但我可以让它也从“pages\u default”读取页面吗。我的意思不是,因为它只显示在两个表中都有名称的页面,而是用相似的字段分隔表

<?php


if (isset($_GET['p']))
{
    $stmt = $dbh->prepare('SELECT * FROM pages WHERE shortname = :p');
    if (!$stmt->execute(array(':p' => $_GET['p'])))
    {//
        exit('Could not exec query with param: '.$_GET['p']);
    }
    while($row = $stmt->fetch(PDO::FETCH_ASSOC))
    {
        echo '<font size="6pt">'.$row["title"].'</font><div class="hr"><hr /></div><br>';
        echo '   '.$row["content"].' ';
    }
}
//disconnect:
$dbh = null;
    ?>

希望我已经理解了您的问题,我假设您希望运行一个查询并从两个具有不同名称和字段的表中检索行

在查询中使用UNION运算符,从两个表中获取行,然后将它们统一到一个表中。必须从每个表中获取相同数量和类型的字段,并为获取的每个字段指定相同的别名

假设您有表t1和t2,并且希望从每个表中获得3个类似的字段,每个表都具有相同的条件您的shortname=:p

SELECT <field1>, <field2>, <field3> FROM ((SELECT <t1field1> AS <field1>, <t1field2> AS <field2>, <t1field3> AS <field3> 
FROM t1 WHERE <t1field2>=:p) UNION (SELECT <t2field1> AS <field1>, <t2field2> AS <field2>, <t2field3> AS <field3> FROM t2 WHERE <t2field2>=:p)) AS A

field1、field2、field3是您为检索的字段设置的别名,因为这两个表可能有不同的字段名。

希望我理解您的问题,我假设您希望运行一个查询,并从两个具有不同名称和字段的表中检索行

在查询中使用UNION运算符,从两个表中获取行,然后将它们统一到一个表中。必须从每个表中获取相同数量和类型的字段,并为获取的每个字段指定相同的别名

假设您有表t1和t2,并且希望从每个表中获得3个类似的字段,每个表都具有相同的条件您的shortname=:p

SELECT <field1>, <field2>, <field3> FROM ((SELECT <t1field1> AS <field1>, <t1field2> AS <field2>, <t1field3> AS <field3> 
FROM t1 WHERE <t1field2>=:p) UNION (SELECT <t2field1> AS <field1>, <t2field2> AS <field2>, <t2field3> AS <field3> FROM t2 WHERE <t2field2>=:p)) AS A

field1、field2、field3是您为检索的字段设置的别名,因为这两个表可能有不同的字段名。

如果有公共值,请使用join。否则,最好做2个查询您使用的是哪种RDBMS?Mysql?如果是这样的话,看看@jazZRo,我提到它是在PDO上运行的。PDO不是一个RDBMS,而是一个PHP库:如果有一个公共值,请使用join。否则,最好做2个查询您使用的是哪种RDBMS?Mysql?如果是这样的话,看看@jazZRo,我提到它是在PDO上运行的..PDO不是RDBMS而是PHP库:嗨,我试过这个,但它给我一个错误,无法使用我的代码中的param:home执行查询。。说该页面不存在。您好,我已经尝试过了,但它给我的错误是无法使用来自我的代码的param:home执行查询。。说页面不存在。