按 ID 使用 PHP 和 MYSQL 显示文章参数

Display Article parameters using PHP and MYSQL by their ID

我是 mysql 和 php 的新手,我正在努力解决这个问题。我正在建立一个 "blog-like" 网站来学习语言,我遇到了这个问题。

我想在主页上显示与其 "age" 相关的文章。这意味着,最大的滑块应该显示最新的文章,下面的两篇小文章应该是第二和第三篇最新文章。

我会通过 ID 完成,但我真的被困在中间的某个地方。我制作了这个原型代码,它按我想要的方式工作,但我 100% 确定有一种更简单的方法 + 如果我想在整个主页上传播 10 篇最新文章,那么为每篇文章创建每个变量就太疯狂了。

我愿意接受任何建议,但请注意,我在 PHP 和 MYSQL 中仍然是菜鸟。谢谢。

<?php
require('connect.php');
$sql1 = mysqli_query($connect, "SELECT * FROM articles ORDER BY id DESC LIMIT 1");
$sql2 = mysqli_query($connect, "SELECT * FROM articles ORDER BY id DESC LIMIT 1,1");
$sql3 = mysqli_query($connect, "SELECT * FROM articles ORDER BY id DESC LIMIT 1,2");
$latestarticle = mysqli_fetch_array($sql1);
$secondlatestarticle = mysqli_fetch_array($sql2);
$thirdlatestarticle = mysqli_fetch_array($sql3);
?>

这是HTML部分

<!--First Big Slide-->
<a href="#"><?=htmlspecialchars($firstlatestarticle['name'])?></a>
<!--Small Article below-->
<a href="#"><?=htmlspecialchars($secondlatestarticle['name'])?></a>
<!--Another Small Article below-->
<a href="#"><?=htmlspecialchars($thirdlatestarticle['name'])?></a>

尝试这样的事情:(未经测试)

 $sql = mysqli_query($connect, "SELECT * FROM articles ORDER BY id DESC LIMIT 10");
 while ($row = mysqli_fetch_array($sql)) 
 {
     echo '<a href="#">'.htmlspecialchars($row['name']).'</a>';
 }

您在这里的方向基本正确,但实现有点偏离。

if($result = mysqli_query($connect, "SELECT * FROM articles ORDER BY id DESC LIMIT 3") != false){
    while ($row = mysqli_fetch_array($result)) {
        $articles[] = $row;
    }
}

echo $articles[0]['name'];
echo $articles[1]['name'];
echo $articles[2]['name'];

当您尝试按 id 排序时,它当然是最新添加到 table 的,但实际上应该按添加文章的日期排序。但是它仍然可以如您所愿地工作,所以没问题。

但真正的优化是在您对数据库的 3 个单独查询中,因为在我的示例中它只有 1 个。