我有以下部分代码:
$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
我添加了剩下的代码。
答案 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)。
任何想法都非常感谢。谢谢。