Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP&;MySQL和传单API_Php_Mysql_Leaflet_Geojson - Fatal编程技术网

PHP&;MySQL和传单API

PHP&;MySQL和传单API,php,mysql,leaflet,geojson,Php,Mysql,Leaflet,Geojson,关于如何将PHP和MySQL与传单API结合使用,我在这里遇到了一些麻烦。几个月前我开始使用PHP和MYSQL,在这方面我是个新手,但我愿意学习,所以请给我一些关于我的问题的建议 问题类似于那个问题: 所以,我尝试使用PHP从MySQL表中获取标记,并使用传单API呈现它 首先,我用一些数据创建了MySQL表: -- phpMyAdmin SQL Dump -- version 4.4.6 -- http://www.phpmyadmin.net -- -- Host: localhost -

关于如何将PHP和MySQL与传单API结合使用,我在这里遇到了一些麻烦。几个月前我开始使用PHP和MYSQL,在这方面我是个新手,但我愿意学习,所以请给我一些关于我的问题的建议

问题类似于那个问题:

所以,我尝试使用PHP从MySQL表中获取标记,并使用传单API呈现它

首先,我用一些数据创建了MySQL表:

-- phpMyAdmin SQL Dump
-- version 4.4.6
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jan 17, 2016 at 08:36 PM
-- Server version: 5.6.24
-- PHP Version: 5.6.8

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `web_gis`
--
CREATE DATABASE IF NOT EXISTS `web_gis` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `web_gis`;

-- --------------------------------------------------------

--
-- Table structure for table `baza`
--

DROP TABLE IF EXISTS `baza`;
CREATE TABLE IF NOT EXISTS `baza` (
  `id` int(11) NOT NULL,
  `operator` varchar(100) NOT NULL,
  `lokacija` varchar(100) NOT NULL,
  `x` float NOT NULL,
  `y` float NOT NULL,
  `prijavljen` date NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

--
-- Dumping data for table `baza`
--

INSERT INTO `baza` (`id`, `operator`, `lokacija`, `x`, `y`, `prijavljen`) VALUES
(1, 'Tele 2', 'OiV stup Hum na Sutli', 46.2135, 15.672, '2016-01-14'),
(2, 'T-Mobile HR', 'OiV stup Straža', 46.2179, 15.6999, '2016-01-03'),
(3, 'T-Mobile HR', 'Lupinjak', 46.2016, 15.7412, '2016-01-23'),
(4, 'T-Mobile HR', 'Klenovec Humski 89\\1', 46.2169, 15.7268, '2016-01-01');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `baza`
--
ALTER TABLE `baza`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `baza`
--
ALTER TABLE `baza`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=8;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
接下来,这里是我的PHP(bazneStanice_geojson.PHP)代码,我从这个站点复制了该代码,并对其进行了一些调整(将base的名称更改为更精确的名称):

公平地说,我有点困惑。我真的不知道我错过了什么,一步一步地跟踪每件事,但仍然没有任何运气。
$geojson
变量中有问题吗

我应该得到[0]行中的组合坐标吗? 像这样的

 [coordinates] => Array
(
 [0] => 46.2135, 15.672
)
============================

更新:

当我试着回应

echo json_encode($geojson, JSON_NUMERIC_CHECK); 
我没有得到任何结果 如果我没弄错的话,我应该得到这样的东西

{ "type": "Feature", "properties": { "Operator": "T-Mobile HR", "Lokacija": "Poljana Sutlanska 8, Zagorska Sela", "Prijavljen": "21.12.2010.", "Odjavljeno": null }, "geometry": { "type": "Point", "coordinates": [ 431501.48819855711, 5110280.408429144 ] } }

我已经找到了解决问题的办法。问题在于符号(č,ž,š,ć,đ…)中,如果任何给定属性具有其中一个符号,则该代码将不起作用:

echo json_encode($geojson, JSON_NUMERIC_CHECK);
为了防止代码中断,我必须将UTF-8放在PDO连接上,以检查数据库字符串是否为UTF-8

与此相反:

$conn = new PDO('mysql:host=localhost;dbname=web_gis','neven','gis');
因此,我插入了如下内容:

$conn = new PDO('mysql:host=localhost;dbname=web_gis;charset=utf8','neven','gis',array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
它就像一个符咒

希望有帮助

echo json_encode($geojson, JSON_NUMERIC_CHECK);
$conn = new PDO('mysql:host=localhost;dbname=web_gis','neven','gis');
$conn = new PDO('mysql:host=localhost;dbname=web_gis;charset=utf8','neven','gis',array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));