gpt4 book ai didi

php - 获取 MySQL 地理点数据并将结果存储在 PHP 变量中

转载 作者:行者123 更新时间:2023-12-01 00:44:19 26 4
gpt4 key购买 nike

我的目标是将一些点数据插入到 MySQL 数据库中。我用一些虚拟数据填充了数据库,它似乎可以工作。稍后,我想检索该数据并将其存储在 PHP 变量中,这样我就可以发布数据的 html 表。

  Point   X   Y   P1     1   1   P2     4   2

Note: Please don't hate on the "art".

I am using the following query string to retrieve the data from the MySQL database. I've used this code in non-point based data and have no problems, things run just fine.

$sql = "SELECT * FROM " . $this->tableName . " WHERE `OTHER` = '" . $Otherdata . "' AND `POSITION` = 'POINT(1,1)' LIMIT 0, 30 ";
$query = mysqli_query($connection, $sql) or trigger_error("Query Failed: " . mysql_error());

$row = mysqli_fetch_assoc($query);

//print_r($row);//This is empty, or null...which means my $sql line is wrong too...

$Index = 0;
while ($row = mysqli_fetch_array($query, MYSQL_ASSOC)) {
$this->PositionX[$Index] = $row['POSITION']; //Error must be HERE!
$this->PositionY[$Index] = $row['POSITION']; // How do I access .X() or [0] or whatever it
$this->OtherVariable[$Index] = $row['OTHER']; // is that points to the first element of Point?
$Index++;
}

长话短说,这行不通。 $row['POSITION'] 不知道我想要 X 组件。另外 $row 为 null 或空,这意味着我的 $sql 一定不正确。

问题一:

检查 Point(x,y) 是否等于 MySQL 数据库中某个点的正确方法是什么?

编辑:找到答案Here .查询的“POINT(1,1)”部分实际上应该只是 POINT(1,1),即没有 ' 字符。正确的行是:

$sql = "SELECT * FROM " . $this->tableName . " WHERE `OTHER` = '" . $Otherdata . "' AND `POSITION` = POINT(1,1) LIMIT 0, 30 ";

问题2:

从 MySQL 数据库中检索一段点数据并将其 X 和 Y 分量存储在 PHP 变量中的语法是什么? (技术上有两个 php 变量,一个用于 X,一个用于 Y,但你知道我的意思。)

另一种表达方式,我如何调用 echo $row['POSITION'];(独立用于 X 和 Y)?

最佳答案

我最近一直在处理同样的问题,虽然上面的方法确实有效,但对于任何想从二进制数据 blob 中提取坐标的人(例如从“fetch_assoc”接收的),那么这个方法应该工作:

function rawPointToFloatPair($data)
{
$res = unpack("lSRID/CByteOrder/lTypeInfo/dX/dY", $data);
return [$res['X'],$res['Y']];
}

该数据结构具有 4 个字节作为 ID,后跟一个字节来定义字节顺序(0 = 大端,1 = 小端。为简洁起见,此处未处理),然后是 4 个字节用于“整数信息”(其中'1' 的值表示这是一个点)。接下来的 16 个字节是两个 double float 。

关于php - 获取 MySQL 地理点数据并将结果存储在 PHP 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24689852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com