[英]how to output database entries by date in DD/MM/YY format?
我正在使用以下代码输出数据库条目:
<div id="main_area">
<div id="container">
<div id="php_container" role="main">
<?php
include('connect_it.php');
$sqlget= "SELECT * FROM dbtablename";
$sqldata= mysqli_query ($dbcon,$sqlget) or die('this is an error');
while ($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)) {
echo $row[ 'li' ] ;
}
?>
</div>
</div>
</div>
在页面加载时,我希望按日期(从最近到最近)排序的数据库条目存储在名为'added'的mysql字段中,格式为DD / MM / YY。
我不确定它是否可以完成,但作为另一种选择,日期是在<span id="date">date: 27/11/11</span>
定义的<span id="date">date: 27/11/11</span>
所以也许这个范围可以使用订购数据?
所以我的问题是,如何按照从最近到最近的日期排序初始输出?
我努力了:
$sqlget= "SELECT * FROM dbtablename ORDER BY added ASC";
但我得到了意想不到的结果
谢谢。
如果您添加的列是DATE,DATETIME或TIMESTAMP类型,您可以像这样使用DATE_FORMAT,
$sqlget= "SELECT *, DATE_FORMAT(added,'%d/%m/%y') as addedFormated FROM dbtablename ORDER BY added ASC";
请参阅https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format
否则,如果它是一个字符串尝试(虽然它确实应该是DATE类型),
$sqlget= "SELECT *, STR_TO_DATE(added,'%d/%m/%y') as addedFormated FROM dbtablename ORDER BY STR_TO_DATE(added,'%d/%m/%y') ASC";
https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date
首先是一些小事(还有更多), <span id="date">...</span>
无效,因为id属性应该是唯一的,使用<span class="date">...</span>
而不是。 浏览器会渲染它,甚至在大多数情况下都能正确渲染它,但不能正确使用“id”属性。
您是否需要选择查询中的所有列? 如果没有,只选择您需要的。
您想要的查询是:
SELECT * FROM dbtablename ORDER BY added DESC
但是这将选择所有行和所有列。 现在是棘手的部分。 您说您的数据以'dd / mm / yyy'格式存储,因此此查询无法正常工作,因为每年每月约有30天。 您需要使用datetime
列类型,它将以yyyy-mm-dd 00:00:00
格式存储日期数据。 如您所见,这将纠正您的所有问题。
或者,正如其他人所说,使用STR_TO_DATE(added,'%d/%m/%y')
来提取数据。
然后,在PHP中提取的数据上,使用(其中$var
是您的日期值):
echo date('d/m/y',strtotime($var));
希望有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.