在逗号上拆分mySQL结果

时间:2016-02-05 22:18:42

标签: php mysql arrays

我有一个看起来像这样的mySQL表(还有其他一些我没有选择的列): sql table

我有一个mysqli php查询:

$sql=('SELECT point FROM placemarks WHERE id < 5');

结果:

while ($row = $rs->fetch_assoc()) {

     printf ("%s <br />", $row["point"]);
-157.798176, 21.254402, 0

-157.804087, 21.253042, 0

-157.805289, 21.252882, 0

首先,我想在逗号上拆分结果。一旦我有了,我想将值插回到&#39; lat&#39;和&#39; lng&#39;用PHP和mysqli的列。我已经搜索并尝试了几个小时。在这一点上,我确定我走的是完全错误的道路。

4 个答案:

答案 0 :(得分:1)

使用explode并将其分解为数组:

  

explode()函数将字符串分解为数组。

 print_r(explode(",",$row["point"]));//breaks into pieces at comma

然后创建所需的查询并按照您的要求将其放入数据库

答案 1 :(得分:1)

UPDATE placemarks 
SET lat = SUBSTRING_INDEX(point, ',', 1)
,lng =  SUBSTRING(SUBSTRING_INDEX(point, ',', -1), 1, -2)

答案 2 :(得分:0)

在php爆炸中可能。

$point = explode(',', $row['point']);

答案 3 :(得分:0)

除非你需要拆分然后在php中操作只是为了更新数据库中的lat / lng然后你可以在这样的一个查询中这样做:

update `placemarks` set `lat`=substring_index(`point`,",",1 ), `lng`=substring_index(`point`,",",-1 );

该死的 - 从未注意到或承认尾随零

update `placemarks` set 
    `lat`=substring_index( substring_index(`point`,",",2 ),",",1 ),
    `lng`=substring_index( substring_index(`point`,",",2 ),",",-1 );