如何在mysql中的半身计算中看到别名的值?

时间:2016-06-30 18:51:23

标签: php mysql

我有以下部分代码:

$query =  "SELECT $table.*, outcodepostcodes.lat, outcodepostcodes.lng
,111.045* DEGREES(ACOS(COS(RADIANS(". $latpoint ."))
         * COS(RADIANS(outcodepostcodes.lat))
         * COS(RADIANS(". $longpoint .") - RADIANS(outcodepostcodes.lng))
        + SIN(RADIANS(". $latpoint ."))
         * SIN(RADIANS(outcodepostcodes.lat)))) AS distance_in_km
FROM $table     
LEFT JOIN outcodepostcodes
ON UPPER($table.postcode)=outcodepostcodes.outcode
WHERE
$where_no_and
AND 
(hide='0' OR hide IS NULL OR hide='')
HAVING distance_in_km  <= 20
ORDER BY rent $reihenach LIMIT $offset, $rowsPerPage
";

我怎样才能看到distance_in_km的值?

我运行查询并使用以下方法获得结果:

$num=mysql_numrows($result);
$i=0;
while ($i < $num) 
{
$id=mysql_result($result,$i,"id");
etc
etc
$distance_in_km=mysql_result($result,$i,"distance_in_km");
}

但是我收到了这个警告:     警告:mysql_result()[function.mysql-result]:在第668行的/home/properf/public_html/4Tsalepf.php中的MySQL结果索引6中找不到distance_in_km

我添加了剩下的代码。

1 个答案:

答案 0 :(得分:0)

好的,我解决了至少一个问题,即警告:

警告:mysql_result()[function.mysql-result]:在第668行/home/properf/public_html/4Tsalepf.php的MySQL结果索引6中找不到distance_in_km

我是通过将别名的名称从distance_in_km更改为简单距离来实现的。显然,这与'标识符引用'有关。我没有尝试过,但如果我把它括在引号中,distance_in_km可能也会有效。

但是,我能够访问别名值的问题仍然存在。我首先尝试使用子查询,将别名放在主查询中,如下所示:

SELECT distance FROM (
SELECT $table.*, outcodepostcodes.lat, outcodepostcodes.lng
,2*3 AS distance
FROM $table
LEFT JOIN outcodepostcodes

然后还用简单的2 * 3 AS距离替换了半身计算,试图强制出现这个结果

$ distance = mysql_result($ result,$ i,“distance”);

然而,当我回显$ distance时它仍然是空的,而不是预期的6(即2 * 3)。

任何想法都非常感谢。谢谢。