从数据库中随机选择 table

selecting random table from database

这是我的 rss feed rss.php 文件 我遇到的问题是 - 我一次只能 select 来自数据库的一个 table,我知道连接但我没有任何共同点,而且我希望它应该 select 从数据库中随机 table 然后获取其各自的标题,内容和摘要,有没有办法做到这一点,就像我们可以使用 rand() 函数(按 rand() 排序)这样的东西,这样我就可以从 select * query.So 中的数据库中随机获取 table 这样我就可以混合所有的 rss 提要tables.

 <?php


    function connect() {
        return new PDO('mysql:host=localhost;dbname=jossicoa_writeups', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
    }

    $pdo = connect();


    $sql = 'SELECT * FROM scienceandtechnology';
    $query = $pdo->prepare($sql);
    $query->execute();
    $rs_post = $query->fetchAll();

    // The XML structure
    $data = '<?xml version="1.0" encoding="UTF-8" ?>';
    $data .= '<rss version="2.0">';
    $data .= '<channel>';
    $data .= '<title>Jossips</title>';
    $data .= '<link>http://www.google.com</link>';
    $data .= '<description>various section</description>';
    foreach ($rs_post as $row) {
        $data .= '<item>';
        $data .= '<title>'.$row['title'].'</title>';
        $data .= '<link>'.$row['content'].'</link>';
        $data .= '<description>'.$row['summary'].'</description>';
        $data .= '</item>';
    }
    $data .= '</channel>';
    $data .= '</rss> ';

    header('Content-Type: application/xml');
    echo $data;
    ?>

尝试这样的事情。

$myarray = array('tbl1','tbl2','tbl3','tbl4');
// get random value from array
$key = array_rand($myarray);
$table= $myarray[$key];

然后你可以运行你的sql查询...

select * from $table ... 

最好的解决方案是为类别创建一个单独的 table,并使用来自包含所有内容的单个 table 的外键进入 table。这样您就可以轻松 select 类别 table 中的随机行,并将其用于内容 table.

中的 select 行