php - 如何显示来自所有表(相同结构)的查询并按数据排序

标签 php mysql

我想知道如何从多个表中选择查询来显示和排序,然后全部按数据排序,然后限制为一个数字(如果我输入 LIMIT 5,只显示最近添加的数据 5 查询从最近不是最后一个的所有表中添加其中一个表中的 5 个,因为我想像新闻栏一样制作) 我有 5 个具有相同结构(id、title、descriere、poza、data)的表(类别),我只想显示其中的最后 5 个。

//create connection to mysql
$db_conx_index = mysqli_connect($servername, $username, $password, $dbname);
$db_conx_index->set_charset('utf8');// pentru diacritice
if(!$db_conx_index){
 die("Connection failed: ". mysqli_connect_error());
}
$catArray = array("istorie", "lifestyle", "sciente", "travel", "nature");    
$slider = '';
foreach($catArray as $k=>$v)
{    
    $sql = "SELECT id, titlu, data, linknews, poza FROM ".$v."  WHERE approved='1' ORDER BY data DESC LIMIT 5";
    $query = mysqli_query($db_conx_index, $sql);   
    while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
        $id = $row["id"];
        $titlu = $row["titlu"];
        $linknews = $row["linknews"];
        $poza = $row["poza"];
        $slider .= '<a href="/'.$linknews.'"><img src="/images/'.$poza.'-600x.jpg" alt="'.$titlu.'"></a>';
    } 
}
?>  
     <?php echo $slider;?> 
    <?php mysqli_close($db_conx_index);?> 

但是代码向我显示了每个表的最后 5 个查询并相互排序然后是第二个表..并且想要在不计算第一个表的情况下进行排序....

最佳答案

忘记 foreach 循环。

"SELECT id, titlu, data, linknews, poza FROM istorie, lifestyle, sciente, travel, nature  WHERE approved='1' ORDER BY data DESC LIMIT 5"

关于php - 如何显示来自所有表(相同结构)的查询并按数据排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37005327/

相关文章:

java - com.mysql.jdbc.MysqlDataTruncation : Data truncation: Incorrect datetime value: ' '

php - 使用表格内的按钮通过 jQuery 打开模式

php - 使用条件逻辑: check if record exists; if it does,更新它,如果没有,则创建它

php - 无法使用 try catch 更新用户 laravel

mysql - 使用 MySQL 在 Slick 3 中做主/从的最佳方法

mysql - 在数据库 mysql 中存储和检索同义词的最佳方法

php - 如何将XML文件导入MariaDB数据库?

php - 如何检查 $_GET 的多个值

php - jQuery 数据表 : Uncaught TypeError: Cannot read property 'mData' of undefined

php - 使用上传的 CSV 中的值创建/填写表单