2015-04-23 69 views
1

我正在使用php和mysql,并且在插入纬度和经度值以及度,min和sec符号时遇到问题。即(°,',“)符号。使用php在mysql中插入符号

我所提到的几个位点和尝试不同的方法,但我就是不能求解。

首先我试图复制符号,并与3个用户输入串联值。

$latitude=$degree.'°'.$min.'''.$sec.'?'.'N'; 

接着执行插入查询后,则$纬度变量值被插入在数据库中,但是符号由随机字符替换,如下所示。

2˚3ʼ4ˮN (data stored in database) 

然后我尝试使用html字符代码而不是符号。

$latitude=$degree.'&deg'.$min.'&#8217'.$sec.'#8221'.'N'; 

但它不起作用。它在数据库中显示相同的html字符。

我不知道它是否与html实体或其他问题。

+1

你有不良enconding,是不是在应用程序和数据库一样。 – panther

回答

2

在我看来,这样的值应该不包括它的(DMS:Deg Min秒)格式。

换句话说,我可能将纬度/经度(例如)存储为浮点值,并在显示时应用所需的格式。

刚例如:

  • 你将存储日期2015-04-23,但可能显示为4th April, 2015

  • 您可能会将金额存储为10.50,但可能会将其显示为$10.50 USD

来到经/纬度考虑36°19'11.46" N为例,通过以下方式之一可能适用于您的情况:

  • 商店作为36.31985但使用所需的转换,以显示它作为36°19'11.46" N

  • 将其存储为36D19M11.46S N,但使用必需的字符串操作将其显示为36°19'11.46" N

  • 商店作为四个部分lat_deglat_minlat_seclat_dir但使用级联,以显示它作为36°19'11.46" N

链接,可以帮助:

mysql-convert-degree-minutes-seconds-to-degree-decimal

latitude-and-longitude-datatype-and-storage-format

convert-dd-to-dms-in-mysql

converting-latitude-and-longitude-coordinates-between-decimal-and-degrees-minutes-seconds

whats-the-best-way-to-store-co-ordinates-longitude-latitude-from-google-maps

+0

谢谢您的建议,我也尝试过,它工作正常,但我的客户是它作为表中的一个属性。没有进一步的计算使用这些数据。只是为了存储。 – sao

+0

我也会认为在一列中更好,但我的建议是不包括可能的格式。请检查我更新的答案。 – Uours