查看: 801|回复: 0

[技术交流] 微擎实现按距离由近到远推荐附近商户

[复制链接]

748

主题

39

回帖

3907

积分

管理员

总舵主

积分
3907
QQ
发表于 2024-1-15 02:15:00 | 显示全部楼层 |阅读模式
代码如下:

  1. $pindex = max(1, intval($_GPC['page']));
  2.     $psize = 15;
  3.     $condition = " WHERE uniacid=:uniacid AND adcode=:adcode";
  4.     $params = array(
  5.         ':uniacid' => $_W['uniacid'],
  6.         ':adcode' => $adcode
  7.     );
  8.     if (!empty(trim($_GPC['keyword']))) {
  9.         $condition .= " AND name LIKE :keyword";
  10.         $params[':keyword'] = "%".trim($_GPC['keyword'])."%";
  11.     }
  12.     // 数量
  13.     $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' .tablename('new_hexiao_merchant'). $condition, $params);
  14.     $condition .= ' ORDER BY distance ASC LIMIT ' . ($pindex - 1) * $psize . ',' . $psize;
  15.     if ($total > 0) {
  16.         // 商户
  17.         $list = pdo_fetchall("SELECT *, (6371 * acos(cos(radians($lat)) * cos(radians(lat)) * cos(radians(lng) - radians($lng)) + sin(radians($lat)) * sin(radians(lat)))) AS distance FROM " .tablename('new_hexiao_merchant'). $condition, $params);
  18.         foreach ($list as &$row) {
  19.             $row['distance'] = number_format($row['distance'], 2);
  20.         }
  21.         unset($row);
  22.     }
  23.     // 页码
  24.     $pages = diypager($total, $pindex, $psize);
复制代码
适合为用户推荐附近的加油站,自提点,商户等。
道不同,不相为谋!理想要有,万一实现了呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:2513533699@qq.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|鲁ICP备19000917号|鲁公网安备37078302000320号

在本版发帖
关注公众号
QQ客服返回顶部