Php 获取上一个数组值
我正在制作一个php聊天系统,我想为每天添加一个标题 为了实现这一点,我需要一种从数据库中获取当前消息日期和上一个消息日期的方法,以便在if语句中使用它们:Php 获取上一个数组值,php,mysql,arrays,Php,Mysql,Arrays,我正在制作一个php聊天系统,我想为每天添加一个标题 为了实现这一点,我需要一种从数据库中获取当前消息日期和上一个消息日期的方法,以便在if语句中使用它们: <?php if ($dtdate != $dtdateprev) : ?> 我在获取上一次报名日期时遇到问题 为了获得这些值,我使用以下方法: <?php $sql=mysql_query("SELECT * FROM test"); while($row=mysql_fetch_array($sql)) {
<?php if ($dtdate != $dtdateprev) : ?>
我在获取上一次报名日期时遇到问题
为了获得这些值,我使用以下方法:
<?php
$sql=mysql_query("SELECT * FROM test");
while($row=mysql_fetch_array($sql)) {
$dtval=$row['dtdate'];
$dtvalprev= **???**;
$dtdate=date_format(new DateTime($dtval), "D d M Y");
$dtdateprev=date_format(new DateTime($dtvalprev), "D d M Y");
?>
<?php if ($dtdate != $dtdateprev) : ?>
<div>Example Header</div>
<?php endif; ?>
<div>Example Message Body</div>
<?php } ?>
示例标题
示例消息体
所以我需要一些$dtvalprev的帮助!提前谢谢。试试这个
<?php
$sql=mysql_query("SELECT * FROM test");
$dtvalprev= '';//previous value initially blank
while($row=mysql_fetch_array($sql)) {
$dtval=$row['dtdate'];
$dtdate=date_format(new DateTime($dtval), "D d M Y");
if($dtdateprev)// check previous value should not blank
$dtdateprev=date_format(new DateTime($dtvalprev), "D d M Y");
?>
<?php if ($dtdate != $dtdateprev) : ?>
<div>Example Header</div>
<?php endif; ?>
<div>Example Message Body</div>
<?php
$dtdateprev=$dtval;// re-assign the current value
}
?>
示例标题
示例消息体
您可以通过查询获得上一个日期:
select t.*,
(select dtdate
from test t2
where t2.dtdate < t.dtdate
order by dtdate desc
limit 1
) as prevdtdate
from test t;
使用PHP中的逻辑来记住前一个值。
只是一个旁注,MySqL**函数将被表示为PHP5.5.0+,您应该考虑使用PDO或MyQuiL**作为第二个条目和下面的值,$dtDATEPRV用于在ECHO中打印当前日期而不是以前的值。对于第一种情况,它应该是空的。有什么想法吗?没有,如果您echo
dtdateprev,那么它将给出previous值
我已经替换了示例消息体
,我得到以下信息:示例消息头2012年10月26日星期五13:08:31示例消息头2012年10月27日星期六14:02:09示例消息头2013年8月6日星期二13:00:09示例消息头2012年11月5日星期一12:02:112013年8月6日星期二13:00:09示例标题2012年11月5日星期一12:04:542013年8月6日星期二13:00:09
。我还将日期格式更改为“D D M Y H:I:s”。
select t.*
from test t
order by dtdate;