admin 发表于 2024-1-15 02:15:00

微擎实现按距离由近到远推荐附近商户

代码如下:

$pindex = max(1, intval($_GPC['page']));
    $psize = 15;
    $condition = " WHERE uniacid=:uniacid AND adcode=:adcode";
    $params = array(
      ':uniacid' => $_W['uniacid'],
      ':adcode' => $adcode
    );
    if (!empty(trim($_GPC['keyword']))) {
      $condition .= " AND name LIKE :keyword";
      $params[':keyword'] = "%".trim($_GPC['keyword'])."%";
    }
    // 数量
    $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' .tablename('new_hexiao_merchant'). $condition, $params);
    $condition .= ' ORDER BY distance ASC LIMIT ' . ($pindex - 1) * $psize . ',' . $psize;
    if ($total > 0) {
      // 商户
      $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);
      foreach ($list as &$row) {
            $row['distance'] = number_format($row['distance'], 2);
      }
      unset($row);
    }
    // 页码
    $pages = diypager($total, $pindex, $psize);适合为用户推荐附近的加油站,自提点,商户等。
页: [1]
查看完整版本: 微擎实现按距离由近到远推荐附近商户