首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mysqli和php获取下一个可用日期

问使用mysqli和php获取下一个可用日期
EN

Stack Overflow用户
提问于 2015-05-14 02:52:49
回答 2查看 63关注 0票数 1

我有一个mysqli数据库,其中有一个用于标记的表和一个用于人的表。

在一个网页上,我显示了今年人们的记录列表:

代码语言:javascript
复制
SELECT * FROM markers m,  people p WHERE m.MarkerID = p.MarkerID and p.Publish=1 and year(m.date) like '2015'

当你点击列表中的一个人时,你会得到一个新的网页,其中使用php中的以下查询显示了该人的数据:

代码语言:javascript
复制
$name = $_POST['name']; 
$newname = str_replace("_", " ", $name);
$q = "SELECT * FROM people p, markers m where p.MarkerID = m.MarkerID and p.Name = '" . $newname . "'";

页面底部有箭头,您可以单击下一条记录和最后一条记录。

请问如何检索下一条或最后一条记录?下一条记录将是来自第一个查询的下一个按日期的记录;前一个记录将是来自第一个查询的前一个按日期的记录。

EN

回答 2

Stack Overflow用户

发布于 2015-05-14 05:41:45

这是目前未测试的。

让我知道你的想法,问任何问题。

代码语言:javascript
复制
$recs = 20;  // number of records per page

$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM markers m,  people p WHERE m.MarkerID = p.MarkerID and p.Publish=1 and year(m.date) like '2015'";

$next = intval($_POST['next']);
$last = intval($_POST['last']);
if($last > 0){
  $limit1 = $last - $recs;
  $limit2 = $last + 1; 
}
else{
  $limit1 = $next;
  $limit2 = $limit1 + $recs; 
}

$query = "$sql LIMIT $limit1 $limit2";
$results = mysqli_query($link,$sql);

   // do your existing page

$rows = mysql_num_rows($results);
if($rows == $recs)
  $result = mysqli_query($link,"SELECT FOUND_ROWS()");
  $more = mysqli_fetch_array($result , MYSQL_NUM);
}
$remaining = intval($more[0]);
$total = $remaining + $limit2;
$remaining -= ($limit1 + $recs);
$next += $recs + 1;
if($remaining > 0)
  echo <<<EOF

<form action="#' method="post">
<input type="hidden" name="next" value="$next"/>
<button type="submit">Next</button>
</form>
<form action="#' method="post">
<input type="hidden" name="last" value="$total"/>
<button type="submit">Last</button>
</form>

EOF;
}
票数 1
EN

Stack Overflow用户

发布于 2015-05-14 21:46:33

我认为这将为之前的记录做好准备:

代码语言:javascript
复制
$q = "select * from people v, markers m 
where v.Publish = 1 
and m.MarkerID = v.MarkerID 
and m.date = (select max(m.date) 
from markers m, victims v where m.MarkerID = v.MarkerID 
and v.Publish = 1 
and m.date < '" . $this_date . "')"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30223062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档