【发布时间】:2014-06-27 20:43:28
【问题描述】:
我正在尝试从 MYSQLi 查询中替换不是最旧 2 的数组中的所有日期时间值。我尝试使用查询获取结果,但它似乎太复杂了,因为我需要多次执行此操作列。有没有办法用 PHP 做到这一点?
如果:
$row["item"] =
"2014-01-01 00:00:00 2014-04-04 00:00:00 2014-02-02 00:00:00 2014-03-03 00:00:00"
返回:
$row["item"] =
"2014-01-01 00:00:00 new 2014-02-02 00:00:00 new"
更新
抱歉,我可能弄错了...如果我的会员列表是在 while 循环中创建的,是否甚至返回了一个数组,或者每次传递都返回了一个 $row["item1"], $row["item2"], etc.?我面临的挑战是比较每列(item1 - item10)的多行(我的成员)之间的日期时间。
当前计数器将项目限制为 12,但不考虑日期时间...
while ($row = mysqli_fetch_array($result)){
if($row["item1"]!="0000-00-00 00:00:00"){ // if datetime is set
$item1cnt++; // add one to counter
if($item1cnt > 12){ // if counter is greater than 12
$row["item1"]=""; // itemx = ""
}else{ // if counter is less than 12
$row["item1"]="item1"; // item = itemx
}
}else{ // if datetime is not set
$row["item1"]=""; // itemx = ""
}
// repeat above for all 10 items
// part of member's listing used by jquery to filter services
$items[] = "<li class=\"services " . $row["item1"] . " " . $row["item2"] . " " . $row["item3"] . " " . $row["item4"] . " " . $row["item5"] . " " . $row["item6"] . " " . $row["item7"] . " " . $row["item8"] . " " . $row["item9"] . " " . $row["item10"] . "\">";
}
//an example situation for listings...the first twelve list their services
<li class="services item1 item2 item3 item4 item6 item7 item8 item9 item10">
<li class="services item1 item2 item3 item4 item5 item6 item7 item8 item9 item10">
<li class="services item1 item2 item3 item4 item5 item6 item7 item8 item9 item10">
<li class="services item1 item2 item3 item4 item5 item6 item7 item8 item9 item10">
<li class="services item1 item2 item3 item4 item5 item6 item7 item8 item9 item10">
<li class="services item1 item2 item3 item4 item5 item6 item7 item8 item9 item10">
<li class="services item1 item2 item3 item4 item5 item6 item7 item8 item9 item10">
<li class="services item1 item2 item3 item4 item5 item6 item7 item8 item9 item10">
<li class="services item1 item2 item3 item4 item5 item6 item7 item8 item9 item10">
<li class="services item1 item2 item3 item4 item5 item6 item7 item8 item9 item10">
<li class="services item1 item2 item3 item4 item5 item6 item7 item8 item9 item10">
<li class="services item1 item2 item3 item4 item5 item6 item7 item8 item9 item10">
//then another lists for all 10 services(items) but only item5 is available. The
current code accomplishes this.
<li class="services item5 ">
但是,如果第一个成员决定提供item5,它将把新人推开。所以我需要使用日期时间来建立排名。
解决方案
我的sql 查询现在对每个项目使用LEFT JOIN 和LIMIT。 @DarkSide 提供了解决方案here
【问题讨论】:
-
您能详细说明一下 MYSQLi 查询吗?也许有更好的方法,因为串联的日期时间字符串感觉不对
-
这里是 my attempt 使用 MYSQLi
-
here 是我尝试完成的一个很好的例子。注意:我实际上需要保留最旧的 12 个,并替换剩余的日期时间,但为简单起见将其缩短为两个 :)