I'm trying to replace all datetime values in an array from a MYSQLi query that are not the oldest 2. I've tried getting the results with the query, but it seems too complex since I need to do this for multiple columns. Is there a way to do this with PHP?
So if:
$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"
Return:
$row["item"] =
"2014-01-01 00:00:00 new 2014-02-02 00:00:00 new"
Update
My apologies, I may be mistaken... if my member's listings are created within a while
loop, is an array even returned, or is one $row["item1"], $row["item2"], etc.
returned with each pass? The challenge I'm facing is comparing datetimes between multiple rows (my members) for each column (item1 - item10).
The current counter limits the items to 12, but does not take into account the datetimes...
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 ">
However, if the first member decides to offer item5
, it will push the new guy off. So I need to use datetime to establish rank.
Solution
My sql
query now uses LEFT JOIN
and LIMIT
for each of the items. @DarkSide provided the solution here