【问题标题】:Compare two DATETIME fields from multidimensional array and return a value or index比较多维数组中的两个 DATETIME 字段并返回一个值或索引
【发布时间】:2015-06-12 20:37:12
【问题描述】:

我有一个用户表。我正在查看的每行有 2 个DATETIME。我将查看$lastLog 日期和$lastReceived(最后收到的潜在客户)并确定哪个更新并成为他们的$eligibleTime。然后,我们将寻找最旧的$eligibleTime 来选择应该接收线索的用户。我正在筛选用户,以确保他们在潜在客户所在的适当州获得许可,并且他们还没有达到每日配额。

我在想,也许我构建了错误的多维数组,应该将所有 $lastLog 日期和 $lastReceived 日期分组到它们自己的数组中并运行 max($array) 或类似的东西。

我怎么看这个?我使用以下方法构建了一个多维数组:

    $sql = "SELECT `lastLog`,`firstName`,`lastReceived` FROM customers";
    $sql = mysqli_query($conn,$sql);
    $result = array();
    while($line = mysqli_fetch_assoc($sql)){
      $result[] = $line;
    }

它正在返回以下数据:

> Array ( [0] => Array ( [lastLog] => 2015-06-12 02:00:00 [firstName] => Nathaniel [lastReceived] => 2015-06-12 05:16:10 ) [1] => Array ( [lastLog] => 2015-06-12 01:00:00 [firstName] => Ignacio [lastReceived] => 2015-06-01 10:00:00 ) [2] => Array ( [lastLog] => 2015-06-12 00:00:00 [firstName] => James [lastReceived] => 2015-06-08 00:00:00 ) [3] => Array ( [lastLog] => 2015-06-12 04:00:00 [firstName] => Robert [lastReceived] => 2015-06-10 00:00:00 ) ) 

谢谢你,纳特

【问题讨论】:

  • 很简单:select greatest(lastlog, lastreceived) AS eligibletimedev.mysql.com/doc/refman/5.0/en/…
  • 知道了.. 谢谢。一旦我弄清楚如何实现它,这就会起作用。奇怪的是,由于某种原因 PHPMyAdmin 不会让我运行该 sql ......尽管查询在我的 php 脚本中有效

标签: php mysql arrays multidimensional-array comparison


【解决方案1】:

感谢 Marc B,问题解决了。

$sql = mysqli_query($conn,
   "SELECT firstName, greatest(lastLog, lastReceived) AS eligibleTime 
    FROM customers 
    ORDER BY eligibleTime DESC
    LIMIT 1");
$result = mysqli_fetch_assoc($sql);
print_r($result);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 2014-12-08
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    相关资源
    最近更新 更多