【问题标题】:using pythagorean theorem to find point within a distance使用勾股定理找到距离内的点
【发布时间】:2011-04-28 19:15:59
【问题描述】:

好的,我有一个包含 3 个字段的数据库,planetkey, xcoord, ycoord...

我想找到输入位置 30 以内的所有行星钥匙。这就是我所拥有的……

$sql2 = "SELECT * FROM adlplanet WHERE SQRT(POW(xcoord - 172.3900, 2) + POW(ycoord - 247.5000, 2)   < 30";  
$queryrow2 = mysql_query($sql2);        
while ($jumpl  = mysql_fetch_array($queryrow2)) {
        echo $jumpl['PlanetKey  '];
}

【问题讨论】:

  • 您缺少关闭 SQRT 的括号。如果这不能解决问题,您还会遇到哪些其他错误?
  • 你有什么问题? (除了第一行中的 sqrt 缺少')',我猜......)
  • $sql1 = "SELECT * FROM adlplanet WHERE (SQRT(POW(xcoord - 172.3900, 2) + POW(ycoord - 247.5000, 2))
  • @Lab:您仍然收到一个错误,因为您引入了一个新的缺失 ) 来对抗您之前添加的 SQRT...
  • 抱歉,我才明白你在说什么……谢谢……现在可以使用了

标签: php mysql math


【解决方案1】:

公式为(x-a)^2 + (y-b)^2 = c^2

所以 30 应该是 30^2:

$sql2 = "SELECT * FROM adlplanet WHERE SQRT(POW(xcoord - 172.3900, 2) + POW(ycoord - 247.5000, 2)   < POW(30,2)";  

【讨论】:

  • 糟糕,忘记添加原始帖子中缺少的额外 ')'。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-23
  • 1970-01-01
  • 2016-03-24
  • 1970-01-01
  • 2013-02-03
  • 2019-10-08
相关资源
最近更新 更多