【发布时间】:2017-07-22 18:19:36
【问题描述】:
我有一个数组 $users
$statement = $pdo->prepare("SELECT * FROM activity");
$statement->execute();
$users = $statement->fetchAll();
我就是这样显示的
<?php
foreach ($users as $key => $row) {
$dist = 0.0;
$x1 = $lng;
$x2 = $row['alng'];
$y1 = $lat;
$y2 = $row['alat'];
$dist = acos(sin($x1=deg2rad($x1))*sin($x2=deg2rad($x2))+cos($x1)*cos($x2)*cos(deg2rad($y2) - deg2rad($y1)))*(6378.137);
$distn = FLOOR ( ROUND($dist,1) * 2 ) / 2 ; //calculate distn
$users[$key]['dist'] = $distn; //add dist to array foreach value
}
array_multisort(array_column($users, 'dist'), SORT_ASC, $users); / sort array with dist
foreach($users as $row) {
?>
<article class="mainusers" id="actvtar">
<div class="actvtinfo">
<a class="actvtsnm" href="actvt.php?id=<?php echo ($row['aid']);?>"><?php echo $row['title']; ?></a>
</div>
<a class="titlepic" href="actvt.php?id=<?php echo ($row['aid']);?>">
<img class="actvtpb" src="./activitys/<?php echo ($row['title']); ?>/activitypic.jpg" alt="Bild nicht gefunden" onerror="this.src='./img/no_title.png';"></img>
</a>
<div class="actvtfooter">
<p id="ua">Tags:</p>
<p class="tags" id="actvttags" name="interest"><?php echo $row['interest'];?></p>
<p id="actvtsdist"><?php echo $row['dist']; ?>km entfernt</p>
</div>
</article>
<?php }
?>
现在我希望 foreach 循环显示 5 次(5 个项目),如果我滚动到底部,则加载接下来的 5 个。 就像推特、Instagram 等... 我怎样才能做到这一点? 如果您不将此标记为重复,我将不胜感激,因为我现在搜索了好几天,但找不到答案! 感谢您的帮助,祝您有美好的一天:)
【问题讨论】:
-
您的代码仅包含 PHP。您需要使用
AJAX显示记录。另外,要回答它太宽泛了。你试过什么?什么不工作? -
网络上有很多教程可以提供帮助。你用谷歌搜索过什么吗? codexworld.com/… , stackoverflow.com/questions/25678303/…
-
我试图从我的数据库中选择所有用户,并用每个用户的坐标计算他们和我之间的距离。然后我将此距离添加到数组 foreach 用户中并用它对数组进行排序。所以最接近的用户首先显示。现在我只想显示前 5 个,当我滚动到底部时,我想加载下一个 5,这样如果 db 中有太多用户,浏览器就不会崩溃
标签: javascript php jquery arrays ajax