Php 从数据库中选择随机表

Php 从数据库中选择随机表,php,mysql,rss,Php,Mysql,Rss,这是我的rss提要的rss.php文件我遇到的问题是-我一次只能从数据库中选择一个表,我知道连接,但我没有任何共同点,而且我希望它应该从数据库中选择随机表,然后获取其各自的标题、内容和摘要,是否有办法做到这一点,就像我们可以使用rand()函数(order by rand())一样,这样我就可以在select*查询中从数据库中获取随机表,这样我就可以从所有表中获得混合的rss提要 <?php function connect() { return new PD

这是我的rss提要的rss.php文件我遇到的问题是-我一次只能从数据库中选择一个表,我知道连接,但我没有任何共同点,而且我希望它应该从数据库中选择随机表,然后获取其各自的标题、内容和摘要,是否有办法做到这一点,就像我们可以使用rand()函数(order by rand())一样,这样我就可以在select*查询中从数据库中获取随机表,这样我就可以从所有表中获得混合的rss提要

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

快乐编码

最好的解决方案是为类别创建一个单独的表,并使用外键从包含所有内容的单个表进入该表。这样,您可以轻松地从categories表中选择一个随机行,并使用它从内容表中选择行。

我认为您不需要从整个数据库中选择一个随机表。我想你那样会给自己制造麻烦的。在php中定义一个表列表,然后随机选取一个表并将其添加到查询中,怎么样?是的,可能是这样done@xdhmoorecould你能给我一个基本的想法吗that@Drewcould你告诉我会是什么样子done@xdhmoore$a=数组(“a”=>“红色”、“b”=>“绿色”、“c”=>“蓝色”、“d”=>“黄色”);选择*from(array_rand($a,1)这是您要说的吗?@xdhmooreBetter从信息模式中为您的database@John不一定。我肯定OP会从列表中排除其他表,例如用于登录的administrators表等。