仅显示前 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->fetch()
而不是$query->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 个通知”)