我是mysql和php的新手,我正在努力解决这个问题。我正在建立一个“类似博客”的网站,只是为了学习语言,我遇到了这个问题。
我想在主页上显示与他们的“年龄”相关的文章。这意味着,最大的滑块应该显示最新文章,下面的两篇小文章应该是第二篇和第三篇最新文章。
我会用ID来做,但我真的卡在中间的某个地方。我制作了这个原型代码,它的工作方式与我想要的一样,但我100%肯定有一种更简单的方法+如果我想在整个主页上传播10篇最新文章,那么为每篇文章创建每个变量都会很疯狂。
我对任何建议持开放态度,但请注意,我仍然是PHP和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>
答案 0 :(得分:0)
尝试这样的事情:(未经测试)
$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>';
}
答案 1 :(得分:0)
你在这里已经走上了正轨,但实施有点过时了。
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,它实际上应该按照添加文章的日期进行排序。然而,它仍然可以正常工作,所以很好。
但真正的优化是在你对数据库的3个单独查询中,就像在我的例子中它只是1。