Rss提要不显示从所有的表

Rss feed not showing from all the tables

本文关键字:显示 Rss      更新时间:2023-09-26

我使用这个rss.php文件的rss提要,但问题是,它显示饲料从只有2个表,而不是所有的4。问题在哪里?饲料来自名人和经济和政治表。

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

$pdo = connect();
$myarray = array('scienceandtechnology','economicsandpolitics','famouspeople','yetosbkistoryhe');
$key = array_rand($myarray);
$table= $myarray[$key];
$sql = "SELECT * FROM ".$table."";
$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>google</title>';
$data .= '<link>http://www.google.com</link>';
$data .= '<description>io</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;
?>

你在这里从表名静态使用它我有几乎相同的问题,但在我的情况下,表名也是动态的所以使用它根据你的相关性

$sql = mysql_query("select name from sections order by rand()");
$datadisplay = array();
while ($row= mysql_fetch_assoc($sql)){
    $section=$row['name'];
    $sqldata = mysql_query("select title,summary from ".$section." order by ID limit 2");
    while ($rowdata= mysql_fetch_assoc($sqldata)){
        $datadisplay[] = $rowdata;
    }
}

这里我要做的是从section中获取表名然后使用这些表名从表中获取数据然后将这些数据存储到另一个数组中然后可以用来获取RSS数据

如果我理解正确,可能会对你有所帮助,

$pdo = connect();
$myarray =  array('scienceandtechnology','economicsandpolitics','famouspeople','yetosbkistoryhe');
foreach ($myarray as $table) {
   $sql = "SELECT * FROM ".$table."";
   $query = $pdo->prepare($sql);
   $query->execute();
   $rs_post = $query->fetchAll();   
   foreach ($rs_post as $post) {
        // echo something
   }             
}