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

使用PHP和MYSQL按ID显示文章参数,php,mysql,blogs,Php,Mysql,Blogs,我是mysql和php新手,我正在努力解决这个问题。我正在建立一个“类似博客”的网站只是为了学习语言,我遇到了这个问题 我想在主页上展示与他们“年龄”相关的文章。这意味着,最大的滑块应该显示最新的文章,下面的两篇小文章应该是第二和第三篇最新的文章 我会用ID做这件事,但我确实被困在中间。我制作了这个原型代码,它可以像我想要的那样工作,但是我100%确定有一种更简单的方法+如果我想在整个主页上传播10篇最新文章,那么为每篇文章创建每个变量就太疯狂了 我愿意接受任何建议,但请注意,我仍然是PHP和M

我是mysql和php新手,我正在努力解决这个问题。我正在建立一个“类似博客”的网站只是为了学习语言,我遇到了这个问题

我想在主页上展示与他们“年龄”相关的文章。这意味着,最大的滑块应该显示最新的文章,下面的两篇小文章应该是第二和第三篇最新的文章

我会用ID做这件事,但我确实被困在中间。我制作了这个原型代码,它可以像我想要的那样工作,但是我100%确定有一种更简单的方法+如果我想在整个主页上传播10篇最新文章,那么为每篇文章创建每个变量就太疯狂了

我愿意接受任何建议,但请注意,我仍然是PHP和MYSQL的noob。多谢各位

<?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,“按id从物品订单中选择*描述限制10”);
while($row=mysqli\u fetch\u数组($sql))
{
回声';
}

您在这方面做得很对,但实现有点不到位

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排序时(id当然是最新添加到表中的id),实际上应该按添加文章的日期进行排序。但是,它仍然可以按照您的要求工作,所以很好


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

阅读
foreach
loopsHey,在提出这个问题之前,我阅读了while和foreach循环,但我没有发现这对这个问题很有用。也许是的,我只读了一些关于学校的基本资料。你好,谢谢你的回答。但这难道不只是列出10篇最新文章吗?我需要把每个名字放在网站的不同部分。如果我错了,请纠正我。如果标签紧随其后,你可以在循环中使用计数器,看看它是否是第一篇文章(然后把它做大)。您还可以将结果推送到数组中,然后检查数组包含多少个元素,并对每个元素执行任何操作。如果你需要另一个例子,请告诉我。天哪,非常感谢。它实际上就像我想要的那样工作:)我从来没有想过这个数组的技巧。谢谢:)您能告诉我为什么$articles之后的[]不起作用吗。我假设这是一个多维数组(由mysqli查询生成的数组放入名为articles的数组中),对吗?但在定义数组时,我在数组语法中找不到任何带有“[]”的内容。应用是,但从不定义。我希望您理解我的要求:)Thanks向一个没有键的数组签名一个值
[]
将使用该数组下一个可用的免费数字索引。使用
print\u r($arr)
var\u dump($arr)
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'];