- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在编写一个投资组合/博客风格的网站,使用; MySQL
、PHP
和 Isotope
,由 Metafizzy 创建 Pintrest 风格。
一旦滚动位置到达包含内容的 div 底部,就会调用 InfiniteScroll.js
,然后它会导入一个 'page2.php'
在下面,它包含另一个 MySQLi
查询来显示下一组数据。所有信息都从中央表格中获取。表格中的信息无法正确排序,因为我们希望每次刷新时显示的数据都是随机的。
我目前正在使用以下语句; 'SELECT * FROM table ORDER BY RAND() LIMIT 9'
,然后在第二页使用 'SELECT * FROM table ORDER BY RAND() LIMIT 9 OFFSET 9'
然后此后的每一页上将 OFFSET 增加 9。
这是从数据库中给我重复的结果,我认为这是由 'RAND()'
引起的。当查询在技术上位于不同的页面上时,有没有办法让结果不重复多次,同时仍然是随机的?
以下是我的索引页面中的代码。我知道 MySQL 已过时,我只是将其用作概念证明。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>TonyG Ltd</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="css/grid.css">
<link rel="stylesheet" type="text/css" href="css/main.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<link href='https://fonts.googleapis.com/css?family=Lato:400,300,100,700,900' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=EB+Garamond' rel='stylesheet' type='text/css'>
<?php include 'db/db.php'; $query='SELECT * FROM blog ORDER BY RAND() LIMIT 9' ; $result=m ysql_query($query) or die($myQuery. "<br/><br/>".mysql_error()); $rows=m ysql_num_rows($result); ?>
</head>
<body>
<div class="container-fluid">
<div class="row nav">
<div class="button-group filters-button-group">
<div class="col-xs-5 nav-left"><a class="nav-link" data-filter=".folder-open">PROJECTS</a> <a class="nav-link" data-filter=".desktop">SERVICES</a> <a class="nav-link" href="blog.php">BLOG</a>
</div>
<a data-filter="*">
<div class="col-xs-2"><span class="nav-logo center-block"></span>
</div>
</a>
<div class="col-xs-5 nav-right"><a class="nav-link" data-filter=".user">PEOPLE</a> <a class="nav-link" data-filter=".briefcase">CLIENTS</a> <a class="nav-link" href="http://192.168.2.30/~ryanelliott/tonyg/contact">CONTACT</a>
</div>
</div>
</div>
<div class="row">
<div class="heading">
<h2>TAGLINE</h2>
</div>
</div>
<div id="container" class="container variable-sizes clearfix infinite-scrolling">
<div class="grid">
<div class="grid-sizer"></div>
<div class="gutter-sizer"></div>
<?php while ($row=m ysql_fetch_array($result)) { if ($row[ 'homepage-desc'] !='NULL' ) { echo '<div class="grid-item '.$row[ 'icon']. ' '.$row[ 'icon']. ' grid-item--'. $row[ 'card'] . '" data-category="'.$row[ 'icon']. '">
<div>
<a href="'.$row[ 'type']. '.php?id='. $row[ 'home_id'] . '"><div class="image"><img src="'. $row[ 'image-1'] . '" alt=""></div></a>
<a href="'.$row[ 'type']. '.php?id='. $row[ 'home_id'] . '"><h5 class="hold">'. $row[ 'title'] . '<i class="icon fa fa-'. $row[ 'icon'] . '"></i></h5></a>
<p class="light">'. $row[ 'homepage-desc'] . '</p>
</div>
</div>'; } else { echo '<div class="grid-item '.$row[ 'icon']. ' grid-item--'. $row[ 'card'] . '" data-category="'.$row[ 'icon']. '">
<div>
<a href="'.$row[ 'type']. '.php?id='. $row[ 'home_id'] . '"><div class="image"><img src="'. $row[ 'image-1'] . '" alt=""></div></a>
<a href="'.$row[ 'type']. '.php?id='. $row[ 'home_id'] . '"><h5 class="holdfalse">'. $row[ 'title'] . '<i class="icon fa fa-'. $row[ 'icon'] . '"></i></h5></a>
</div>
</div>'; } } ?>
</div>
<nav id="page_nav">
<a href="autoload/page2.php"></a>
</div>
</div>
<footer>
<div class="container">
<div class="row">
<div class="col-xs-6 text-left">
<p>TonyG Ltd. Registered in ... Number ...</p>
</div>
<div class="col-xs-6 text-right right-fix">
<p>studio@tonyg.co.uk | +44(0) 870 121 7676</p>
</div>
</div>
</div>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<script src="js/jquery-1.11.3.min.js"></script>
<script src="js/isotope.pkgd.min.js"></script>
<script src="js/infinite-scroll-master/jquery.infinitescroll.min.js"></script>
<script>
$(function() {
// init Isotope
var $grid = $('.grid').isotope({
itemSelector: '.grid-item',
layoutMode: 'fitRows'
});
var $container = $('#container');
$container.isotope({
itemSelector: '.grid-item',
percentPosition: true,
masonry: {
columnWidth: '.grid-sizer',
gutter: '.gutter-sizer'
}
});
$container.infinitescroll({
navSelector: '#page_nav', // selector for the paged navigation
nextSelector: '#page_nav a', // selector for the NEXT link (to page 2)
itemSelector: '.grid-item', // selector for all items you'll retrieve
loading: {
finishedMsg: 'No more pages to load.',
img: 'http://i.imgur.com/qkKy8.gif'
}
},
// call Isotope as a callback
function(newElements) {
$container.isotope('appended', $(newElements));
}
);
});
</script>
</footer>
</div>
</body>
</html>
以下是导入页面的代码,它在滚动时添加了额外的内容。
<?php include '../db/db.php'; $query='SELECT * FROM blog ORDER BY RAND() LIMIT 9' ; $result=m ysql_query($query) or die($myQuery. "<br/><br/>".mysql_error()); $rows=m ysql_num_rows($result); ?>
<div class="container scroll" data-ui="jscroll-default">
<div class="grid jscroll-inner">
<div class="grid-sizer col-sm-6"></div>
<div class="gutter-sizer"></div>
<?php while ($row=m ysql_fetch_array($result)) { if ($row[ 'homepage-desc'] !='NULL' ) { echo '<div class="grid-item '.$row[ 'icon']. ' '.$row[ 'icon']. ' grid-item--'. $row[ 'card'] . '" data-category="'.$row[ 'icon']. '">
<div>
<a href="'.$row[ 'type']. '.php?id='. $row[ 'home_id'] . '"><div class="image"><img src="'. $row[ 'image-1'] . '" alt=""></div></a>
<a href="'.$row[ 'type']. '.php?id='. $row[ 'home_id'] . '"><h5 class="hold">'. $row[ 'title'] . '<i class="icon fa fa-'. $row[ 'icon'] . '"></i></h5></a>
<p class="light">'. $row[ 'homepage-desc'] . '</p>
</div>
</div>'; } else { echo '<div class="grid-item '.$row[ 'icon']. ' grid-item--'. $row[ 'card'] . '" data-category="'.$row[ 'icon']. '">
<div>
<a href="'.$row[ 'type']. '.php?id='. $row[ 'home_id'] . '"><div class="image"><img src="'. $row[ 'image-1'] . '" alt=""></div></a>
<a href="'.$row[ 'type']. '.php?id='. $row[ 'home_id'] . '"><h5 class="holdfalse">'. $row[ 'title'] . '<i class="icon fa fa-'. $row[ 'icon'] . '"></i></h5></a>
</div>
</div>'; } } ?>
</div>
<div class="next jscroll-next-parent">
<a href="autoload/page3.php">next</a>
</div>
</div>
最佳答案
首先,我想您了解自己的工作。因为你的问题中没有代码,所以我只是给你一个想法。您必须完成它。
在第 1 页中,您会将第一个结果集中的 ID 存储在一个数组中,并将该数组存储在 $_SESSION 中。
page1.php
session_start();
//Make your query : SELECT * FROM table ORDER BY RAND() LIMIT 9
//Suppose results are stored in an array called "$listResult".
$listIDs = array();
foreach($listResult as $result)
{
$listIDs[] = $result['idFromTable'];
}
$_SESSION['listIDs'] = $listIDs;
//Continue your stuff
第 2 页,您将从 $_SESSION 中检索 ID 列表。然后,您将在查询中添加 where close 以选择与您在第 1 页中存储的 ID 列表不匹配的随机结果。
page2.php
session_start();
$strListIDs = implode(',', $_SESSION['listIDs']);
$query = 'SELECT * FROM table WHERE id NOT IN ('.$strListIDs.') ORDER BY RAND() LIMIT 9 OFFSET 9';
关于php - 使用 Isotope 和 InfiniteScroll 进行 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35575346/
Isotope 将此样式添加到项目中: position: absolute; left: 0px; top: 0px; -webkit-transform: translate3d(0px, 0px
我结合使用 Bootstrap 和 PHP 来创建投资组合部分。 我有大约 12 个元素,我想在每一行显示其中的 4 个。 问题是无论我做什么,单位都粘在容器的左侧,我似乎无法将它们居中,即使在 SO
我有一个同位素项目,当有人在其中发表评论时,它的高度会增加。当它生长时,我如何告诉主同位素容器随它一起生长?现在正在发生的事情是,随着同位素项目的增长,同位素容器保持其在调用 $(".home_mai
是否可以在页面上多次使用同位素,即对不同的数据集使用不同的文件管理器? 似乎代码需要使用某些ID,例如无法更改的“ #options”。 为了实现此目的,我需要对代码进行哪些更改? 最佳答案 有可能的
我正在使用 Isotope 插件和 Infinite Scroll 插件。使用默认设置无限滚动会自动触发加载新元素,这很好,但是,我宁愿有一个按钮“加载更多图像”。 我只缺少一小段代码,可以从无限滚动
我正计划使用出色的同位素插件显示联系人列表,然后对其进行过滤。我的问题是,它适用于较小的数据集,但我不确定将其扩展为1000多个数据的最佳方法。 到目前为止,我的想法是: 加载一个随机子集,然后在单击
我一直在使用 jQuery 的同位素插件,我的主页遇到了一些问题,它需要两个同位素实例。 它们都有不同类型的元素,并且保存在自己的容器中,但是当我单击第二个同位素实例上的过滤器时,它也会尝试过滤第一个
我在页面上有一个基本的照片布局(用于作品集)。有两种不同尺寸的图像 block ,较大的图像 block 与较小的图像 block 成比例,并且正好是宽度和高度的两倍, block 或窗口之间没有边距
我已经使用很棒的 jQuery Isotope 插件设置了一个员工简介页面。 布局是标准的 4 列网格,所有项目的大小相同。当用户单击某个项目时,该行中的前一个项目将使用“插入”方法附加到布局中,然后
我正在使用 jquery 同位素和无限滚动,并且想要使用图像预加载器 我使用的图像预加载器是这样的:Image preloader $('.image').preloader({ loader
我正在尝试使用 jQuery Isotope 对这些元素进行排序插入。我无法让我选择的选项与左上角对齐,它只是移动到网格的底部。我查看了 sortAscending 选项,但它破坏了我放置内容的顺序。
如何将自定义类添加到此 jQuery 同位素过滤并计算同位素过滤的项目: $(function(){ var $container = $('#wrap-planspiel'),
我开始在我的项目中使用很棒的 JQuery Isotope 插件。一切都很好,但我在角钉选项方面遇到了一个问题。 我的masnory网格中的每个元素都有固定宽度(220px + 5边距)和随机高度(取
我的网站出现问题。我在 IE8/9 上遇到网页错误: Object doesn't support this property or method 'isotope' Line: 47 Char: 3
我已经看到很多关于此的问题但没有答案(至少没有一个对我有帮助)。 我的设置非常简单 - 一个带有图像的流体容器(没有固定宽度)。 我在 CSS 中设置了每个 div 项目占 25%,并且我在其中设置了
我在两个不同的部分中有这些复选框: 55+ Exclusive All-Ages Classic Homes NVHo
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我在 http://pressedweb.com/portfolio 制作了一个我非常满意的作品集,但是当我调整窗口大小时,它不会像本例中那样重新组织容器项目: http://isotope.meta
在 David DeSandro 的有趣同位素实现列表中,有一个 http://www.wonderfulwebsolutions.net/单击元素后显示其他内容(图像、文本、链接等)。虽然作为 jQ
如何在 beautiful-beautiful jQuery Isotope 中覆盖自动左对齐(Source on GitHub)? 谢谢! 最佳答案 您有两个选择:重新设计 Isotope 的布局逻
我是一名优秀的程序员,十分优秀!