使用PHP和MYSQL按ID

时间:2016-01-09 19:43:22

标签: php mysql blogs

我是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>

2 个答案:

答案 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。