无法让它在 Joomla 3.4+ 中工作

Posted

技术标签:

【中文标题】无法让它在 Joomla 3.4+ 中工作【英文标题】:Can not get this to work in Joomla 3.4+ 【发布时间】:2015-05-07 02:54:04 【问题描述】:

现在花了几个小时,但它似乎不起作用。一位听众点击了我的网站,我获取了他们的 ip 并最终获得了大致的纬度和经度。我有一张我的广播电台的表格,上面有它们的大致纬度和经度。我只是想看看新的 Listener 是否在我的一个电台 25 英里范围内,这样我就可以给他们那个提要。如果没有,我会给他们我的全球直播。

当我使用下面的查询时,

//Connect to database
// CONNECT TO JOOMLA DATABASE
$db = JFactory::getDbo();

// Create a new query object.
$query = $db->getQuery(true);

$query
    ->select($db->quoteName(array('cityName', 'countryCode', 'latitude', 'longitude')))
    ->select($db->quote('( 3959 * acos( cos( radians('.$latitude.') ) * cos( radians( latitude ) ) 
    * cos( radians( longitude ) - radians('.$longitude.') ) + sin( radians('.$latitude.') )
    * sin( radians( latitude ) ) ) )', 'distance'))
    ->from($db->quoteName('#__areas'))
    ->having($db->quote('distance') . ' < ' . $miles)
    ->order($db->quote('distance') . ' DESC')
    ->setLimit('1');

// Reset the query using our newly populated query object.
$db->setQuery($query);

// Load the results as a list of stdClass objects (see later for more options on retrieving data).
$row = $db->loadObject();

echo $distance = distance($latitude,$longitude,$row->latitude,$row->longitude,"M");
echo '<br />';
print_r($row);
    exit;

输出是:

stdClass Object ( [cityName] => Fort Lauderdale [countryCode] => US [latitude] => 26.122299 [longitude] => -80.143402 [( 3959 * acos( cos( 弧度(46.8898) ) * cos( 弧度(纬度))* cos(弧度(经度)-弧度(-114.031))+ sin(弧度(46.8898))* sin(弧度(纬度))))] =>(3959 * acos(cos(弧度(46.8898)) * cos(弧度(纬度))* cos(弧度(经度)-弧度(-114.031))+ sin(弧度(46.8898))* sin(弧度(纬度)))))

长计算的结果不应该是距离而不是重复计算吗?我已经尝试了所有我能想到的组合,除了正确的组合。真的可以使用一些帮助。谢谢!

【问题讨论】:

所以只需评论您的print_r($row); 【参考方案1】:

尝试一下:

->select('( 3959 * acos( cos( radians('.$latitude.') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians('.$longitude.') ) + sin( radians('.$latitude.') ) * sin( radians( latitude ) ) ) ) as distance'))

【讨论】:

虽然这个答案可能是正确且有用的,但最好在其中附上一些解释来解释它如何帮助解决问题。如果有更改(可能不相关)导致它停止工作并且用户需要了解它曾经是如何工作的,这在未来变得特别有用。

以上是关于无法让它在 Joomla 3.4+ 中工作的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI Alert 如何让它在一个简单的 if 语句中工作?

Midlet 在模拟器中工作,ClassNotFoundException 在手机上

如何让这个动画在 Edge 中工作?

Javascript - 无法发布数据(使用 axios),而它在邮递员中工作。为啥?

在 .NET Core 1.0 中使用 resx 资源

旧 ASP.NET 4 应用程序的构建服务器无法构建新的 C# 7,但它在开发中工作