仅显示前 5 个结果

Posted

技术标签:

【中文标题】仅显示前 5 个结果【英文标题】:Showing only the top 5 results 【发布时间】:2013-09-12 06:55:41 【问题描述】:

对不起,我对php很垃圾,但我愿意学习。

我正在创建我的网站,发现 here

并且正在创建一个名为 more 的页面。

在此页面中,我想在我的网站上添加我的前 5 项促销活动的列表。每个促销都保存在我的 mysql 中的 mobi 数据库中,并且每次有人在我的 single.php 页面上查看特定促销时,我都会添加一个计数。

基本上是这样。我需要做的是在我的 mobi 数据库的“views”字段中显示 5 个数量最多的促销活动。

我目前有这些代码:

include_once('include/connection.php');
include_once('include/article.php');

<?php foreach ($articles as $article)  ?>

<a href="list.php?id=<?php echo $article['promo_title']; ?>"> <?php echo $article['promo_title']; ?> </a>

在 more.php 以及

class views 
public function fetch_all()
   global $pdo;

 $query = $pdo->prepare("SELECT * FROM mobi ORDER BY views DESC LIMIT 0, 5");
   $query->execute();

return $query->fetch(); 




在articles.php中,它只加载了一些奇怪的文本“t t t h h w w d d d d 3 3”

我想我需要添加某种类型的数组,但我不确定如何输入。

请有人告诉我怎么做?

谢谢。

【问题讨论】:

你调用你的函数fetch_all,那你为什么调用$query-&gt;fetch()而不是$query-&gt;fetchAll() 你在哪里设置$articles?如果你var_dump($articles),你会看到什么? 确实,$query->fetch() 只会让您获得第一行。我认为问题可能出在 article.php 中(或者您将查询结果转换为 $articles 数组的地方) foreach 循环的右括号在哪里? 巴默。你是对的。将其从 fetch 更改为 fetchAll 有效。谢谢。 【参考方案1】:

fetch() 应该改为 fetchAll()

 class views
 
    public function fetch_all()
    
      global $pdo;

      $query = $pdo->prepare("SELECT * FROM mobi ORDER BY views DESC LIMIT 0, 5");
      $query->execute();

      return $query->fetchAll(); 

    
 

还应该加上foreach右括号

<?php foreach ($articles as $article)  ?>

<a href="list.php?id=<?php echo $article['promo_title']; ?>">
<?php echo $article['promo_title']; ?> </a>
 <?php  ?>

还要检查你返回结果集并将其发送到 article.php 的代码

【讨论】:

@KevHopwood 如果回复对您有帮助并解决了您的问题,请务必批准该回复,以便发帖人为他们为您提供帮助所花费的时间获得一些赞誉。

以上是关于仅显示前 5 个结果的主要内容,如果未能解决你的问题,请参考以下文章

Xcode4 在终端中显示所有输出(删除“仅显示前 200 个通知”)

如何默认只显示 5 个结果?

仅显示前 9 个图像 ACF 库和链接中的触发器库

从 Firebase 将一组对填充到 tableView 中以仅显示前 3 个最高分数

显示结果,显示更多链接

在 JavaScript 中使用循环仅显示最新的 3 个结果