我正在尝试使用用户当前时间作为格式为“11:30 AM”的变量进行 sql 查询。然后,查找大于等于 mysql 数据库中的记录。
if(isset($_GET['curday'])){
$curday = $_GET['curday']; // users current day value 5 for Friday
}
if(isset($_GET['time'])){
$time = $_GET['time']; // users current time value 11:30AM
$time = preg_replace('/[^0-9]/', '', $time); // replacing the : and AM,PM
$query = "SELECT id, Name, Address, Meeting_type, Latitude, Longitude, Thetime, Gender, Dayofweek, 3956 * 2 *
ASIN(SQRT( POWER(SIN(($origLat - Latitude)*pi()/180/2),2)
+COS($origLat*pi()/180 )*COS(Latitude*pi()/180)
*POWER(SIN(($origLon-Longitude)*pi()/180/2),2)))
as Distance FROM $tableName WHERE
Longitude between ($origLon-$dist/cos(radians($origLat))*69)
and ($origLon+$dist/cos(radians($origLat))*69)
and Latitude between ($origLat-($dist/69))
and ($origLat+($dist/69))
having Distance < $dist AND Meeting_type = $id AND Dayofweek = $curday AND Thetime >= $time ORDER BY Thetime limit 100";
}
我知道 AM 和 PM 效应会在时间值中找到 >= 值和可能的 : 所以我删除了所有但数字以尝试帮助使用 $time = preg_replace('/[^0-9]/', '' , $time); 但仍然无法正确检索值。我不能在这个现有的数据库中使用时间戳,所以更喜欢没有的解决方案。它现在是本地的,我会在完成这项工作后加入 sql 注入安全性。
感谢您提供任何意见!
胡子哥哥
冉冉说