Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 26.06.2020
Сообщений: 5
1
Другое

PHP 7 вывести метки на карту из базы MySQL

26.06.2020, 15:59. Просмотров 226. Ответов 8
Метки нет (Все метки)

Здравствуйте уважаемые программисты. Я новичок самоучка, это не моя основная профессия но мне очень интересно программировать изучать и создавать сайты. А потому не гневайтесь на меня ежели я чего то не так написал. Спасибо.
Предистория: Писал портал на PHP 5 с базами на MySQL и всё было замечательно, сайтик работал локально на OpenServere, в базу всё записывалось, всё из базы выводилось на карту яндекса, пока я не столкнулся с проблемой подружить php 5 с движком для форума на XenForo (самая последняя версия).
Этот зверь XenForo не захотел работать совместно с PHP 5 и мне пришлось переписывать весь код под PHP 7. Переписал всё, и это всё заработало, кроме одного...
Проблема следующего характера: В базу данных MySQL метка на карту записывается а обратно на карту (Shift+F5) не выводится. Есть 4 файла: "index.php" - ну это исполняемый, "addmetki.php", "bd.php", "vivodpointsmap.php".

Вот что внутри файла "addmetki.php":
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
 
header('Content-Type: text/html; charset=utf-8');
 
include("bd.php");
 
require_once "html_filter_class.php";
        
    $tags_set = array(
        
        'h1'        => array('id', 'class'),
        'h2'        => array('id', 'class'),
        'h3'        => array('id', 'class'),
        'h4'        => array('id', 'class'),
        'h5'        => array('id', 'class'),
        'h6'        => array('id', 'class'),
        
        'p'         => array('id', 'class'),
        'span'      => array('id', 'class'),
        'a'         => array('id', 'class', 'href'),
        'img'       => array('id', 'class', 'src', 'alt', FALSE),
        'br'        => array(FALSE),
        'hr'        => array(FALSE),
        
        'strong'        => array('id', 'class'),    
        'div'       => array('id', 'class', 'style'),       
        
        
        'ul'        => array('id', 'class'),
        'ol'        => array('id', 'class'),
        'li'        => array('id', 'class'),
        
        'table'     => array('id', 'class'),
        'tr'        => array('id', 'class'),
        'td'        => array('id', 'class'),
        'th'        => array('id', 'class'),
        'thead'     => array('id', 'class'),
        'tbody'     => array('id', 'class'),
        'tfoot'     => array('id', 'class') 
        
    );
    
    
    $html_filter = new html_filter();
    $html_filter->set_tags($tags_set);
 
$iconText = htmlspecialchars($_POST['icontext']);
$hintText = htmlspecialchars($_POST['hinttext']);
$balloonText = $html_filter->filter($_POST['balloontext']);
$stylePlacemark = $_POST['styleplacemark'];
$lat = $_POST['lat'];
$lon = $_POST['lon'];
 
$sql = "INSERT INTO ymapapiv2_markers (`id`, `iconText`, `hintText`, `balloonText`, `stylePlacemark`, `lat`, `lon`) VALUES (NULL, '$iconText', '$hintText', '$balloonText', '$stylePlacemark', '$lat', '$lon');";
 
$result = mysqli_query($GLOBALS["___mysqli_ston"], $sql) or die("Ошибочный запрос: " . mysqli_error($GLOBALS["___mysqli_ston"]));
 
?>
Вот что внутри файла " bd.php":
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
/*header('Content-Type: text/html; charset=utf-8');*/
 
$sdb_name = "localhost";
$user_name = "root";
$user_password = "root";
$db_name = "ymaps_bd";
 
//?????????? ? ???????? ???? ??????
if(!$link = ($GLOBALS["___mysqli_ston"] = mysqli_connect($sdb_name,  $user_name,  $user_password)))
{
  echo "<br>?? ???? ??????????? ? ???????? ???? ??????<br>";
  exit();
}
 
 
//???????? ???? ??????
if(!mysqli_select_db( $link, $db_name))
{
  echo "<br>?? ???? ??????? ???? ??????<br>";
  exit();
}
 
mysqli_query($GLOBALS["___mysqli_ston"], 'SET NAMES utf8');
 
?>
Вот что внутри файла "vivodpointsmap.php":
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
header('Content-Type: text/html; charset=utf-8');
 
require ("bd.php");
 
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
 
$result = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT * FROM ymapapiv2_markers");
if(mysqli_num_rows($result)>0)
{
while ($mar = mysqli_fetch_array($result))
{
$json =  array(icontext=>$mar['iconText'], hinttext=>$mar['hintText'], balloontext=>$mar['balloonText'], styleplacemark=>$mar['stylePlacemark'], lat=>$mar['lat'], lon=>$mar['lon']);
$markers[] = $json;
}
 
}
$points = array(markers=>$markers);
 
echo json_encode($points);
 
}
 
 
?>
Очень прошу, помогите пожалуйста уважаемые мастера и профи в этой области, мучаюсь уже давно и не могу решить задачу самостоятельно. Спасибо всем кто ответит!
0
Миниатюры
PHP 7 вывести метки на карту из базы MySQL   PHP 7 вывести метки на карту из базы MySQL  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2020, 15:59
Ответы с готовыми решениями:

Вывести из mysql базы данные в php форму и сделать список
У нас таблица пользователей users (id, имя, фамилия) и есть таблицы matemat и engl (id,оценка) ...

Php и mysql Данные из базы в select
есть масив: $cats = array('artem-tretyakov'=&gt;'Третьяков', 'artem-tretyakov3'=&gt;'Третьяков не...

Выборка из базы данных php +mysql
Привет программисты! Хотел создать двухуровневою реф. систему , но не могу сообразить как...

Вывод переменной из базы(php+mysql)
Всем привет! И так у меня есть база данных mesql в ней есть таблица mods в которой 4 поля...

8
0 / 0 / 0
Регистрация: 26.06.2020
Сообщений: 5
26.06.2020, 16:38  [ТС] 2
Пробовал проверить код через встроенную в OpenServer тузлу, она показала что жалуется конкретно на две строчки в файле vivodpointmap.php в которых присутствуют два массива array. Ума не приложу, что не так с массивами???
0
458 / 344 / 143
Регистрация: 31.08.2019
Сообщений: 935
26.06.2020, 16:41 3
Цитата Сообщение от ZeLeT Посмотреть сообщение
$json =  array(icontext=>$mar['iconText'], hinttext=> ....
Может вместе с json ajax-ом получаете ещё и кучу текста с Warnings ?
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cat <<\z | php
 
<?php
$test = array(qwe=>1, wert=>2);
var_export($test);
z
 
PHP Warning:  Use of undefined constant qwe - assumed 'qwe' (this will throw an Error in a future version of P
HP) in Standard input code on line 3
PHP Warning:  Use of undefined constant wert - assumed 'wert' (this will throw an Error in a future version of
 PHP) in Standard input code on line 3
array (
  'qwe' => 1,
  'wert' => 2,
)
как-то можете посмотреть то получает это XMLHttpRequest ?
0
0 / 0 / 0
Регистрация: 26.06.2020
Сообщений: 5
26.06.2020, 16:50  [ТС] 4
"как-то можете посмотреть то получает это XMLHttpRequest ?"
Уважаемый x_lab
А как это можно посмотреть?
0
458 / 344 / 143
Регистрация: 31.08.2019
Сообщений: 935
26.06.2020, 17:00 5
Цитата Сообщение от ZeLeT Посмотреть сообщение
как это можно посмотреть?
Сложно сказать, там куча js-кода )
проще просто взять в кавычки имена ключей массивов
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
header('Content-Type: text/html; charset=utf-8');
 
require ("bd.php");
 
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
 
$result = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT * FROM ymapapiv2_markers");
if(mysqli_num_rows($result)>0)
{
while ($mar = mysqli_fetch_array($result))
{
$json =  array('icontext'=>$mar['iconText'], 'hinttext'=>$mar['hintText'], 'balloontext'=>$mar['balloonText'], 'styleplacemark'=>$mar['stylePlacemark'], 'lat'=>$mar['lat'], 'lon'=>$mar['lon']);
$markers[] = $json;
}
 
}
$points = array('markers'=>$markers);
 
echo json_encode($points);
 
}
 
 
?>
если ничего не упустил...
так-же например
$_SERVER['HTTP_X_REQUESTED_WITH']
может вызвать Notice, но это если error_reporting == E_ALL, и тех кто не посылает заголовок X_REQUESTED_WITH всё равно этот код шлёт лесом
0
0 / 0 / 0
Регистрация: 26.06.2020
Сообщений: 5
29.06.2020, 11:11  [ТС] 6
Хорошо, может быть подскажете как просто вывести метки ну или то что записано в таблицу на страничку в любое место. Мне бы хотя бы просто вывести на страничку а дальше может бы я разобрался...
Вот старый код ещё до переделки с php 5 на php 7, может вам это поможет, я честно в тупике..

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
header('Content-Type: text/html; charset=utf-8');
 
require ("bd.php");
 
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
 
$result = mysql_query("SELECT * FROM ymapapiv2_markers");
if(mysql_num_rows($result)>0)
{
while ($mar = mysql_fetch_array($result))
{
$json =  array(icontext=>$mar['iconText'], hinttext=>$mar['hintText'], balloontext=>$mar['balloonText'], styleplacemark=>$mar['stylePlacemark'], lat=>$mar['lat'], lon=>$mar['lon']);
$markers[] = $json;
}
 
}
$points = array(markers=>$markers);
 
echo json_encode($points);
 
}
 
 
?>
0
458 / 344 / 143
Регистрация: 31.08.2019
Сообщений: 935
29.06.2020, 14:19 7
Цитата Сообщение от ZeLeT Посмотреть сообщение
просто вывести метки ну или то что записано в таблицу
По поводу javascript-а нужно разбираться, в js-коде который делает запрос к этому vivodpointsmap.php
, там тоже своих наворотов хватает обычно, и json c ошибками скорее всего просто игнорируется на данный момент .

Есть вариант просто вывести запросив php-скриптом, например типа такого файл запустить
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$addr = $_SERVER['REQUEST_SCHEME'] .'://'.   $_SERVER['SERVER_NAME']  .'/vivodpointsmap.php';
// поправьте какой там адрес этого http://your.site/path/to/vivodpointsmap.php
 
$opts = array('http' =>
    array(
        'method'  => 'GET',
        'header'  => 'X-Requested-With: XMLHttpRequest',
//        'content' => $postdata //POST
//  браузер ещё много чего добавляет, но этому обработчику вроде не нужно
    )
);
$context = stream_context_create($opts);
$result = file_get_contents($addr, false, $context);
 
echo "<xmp style=\"border:solid 2pt red\">\n\$result = ", var_export($result, 1), "\n</xmp>\n";
Возможно что-то лишнее увидите,
или не увидите ничего.

Цитата Сообщение от ZeLeT Посмотреть сообщение
старый код ещё до переделки
не замечаю ошибок в новом, ну можно и добавить ещё пару строк
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
error_reporting(-1);
ini_set('display_errors', 1);
 
header('Content-Type: text/html; charset=utf-8');
 
require ("bd.php");
 
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
    $result = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT * FROM ymapapiv2_markers");
    
    $markers = array();// не обратил внимание что используется после if(){...}
    // так-же $result может быть FALSE 
    if($result && mysqli_num_rows($result)>0)
    {
        while ($mar = mysqli_fetch_array($result)) 
        {
        $json =  array('icontext'=>$mar['iconText'], 'hinttext'=>$mar['hintText'], 'balloontext'=>$mar['balloonText'], 'styleplacemark'=>$mar['stylePlacemark'], 'lat'=>$mar['lat'], 'lon'=>$mar['lon']);
        $markers[] = $json;
        }
     
    }
    $points = array('markers'=>$markers);
     
    echo json_encode($points);
 
}
Могло быть Notice undefined $markers
Так-же возможна проверка что запрос вообще выполнился
PHP
1
2
3
    if (!$result) {
       echo 'Ошибка: '. mysqli_error($GLOBALS["___mysqli_ston"]) ;
    }
Но если нужен json на выходе, то какой смысл заворачивать текст ошибок в json, вместо echo,
если в итоге javascript не использует это
0
0 / 0 / 0
Регистрация: 26.06.2020
Сообщений: 5
29.06.2020, 16:28  [ТС] 8
Да в том то и дело что я запутался как это реализовать. Мне бы хоть как - нибудь оно работало, хоть на хромой собаке но метки должны отображаться... Весь смысл проекта в этих метках... Что-то подставлял Ваш код, ошибок тоже не вижу но по прежнему метки из базы не выводит...
0
458 / 344 / 143
Регистрация: 31.08.2019
Сообщений: 935
29.06.2020, 16:57 9
Цитата Сообщение от x_lab Посмотреть сообщение
вывести запросив php-скриптом,
Просто попробуйте сохранить где-то как например test.php
запустите из браузера этот http://site/path/to/test.php
Увидите что отвечает ajax-запросу этот http://site/path/to/vivodpointsmap.php
если там как и ожидается нормальный корректный json с этими метками, то причина в чём-то ещё.

Добавлено через 2 минуты
Цитата Сообщение от ZeLeT Посмотреть сообщение
ошибок тоже не вижу
я не запускал ,) не замечаю чисто визуально

Добавлено через 14 минут
Цитата Сообщение от x_lab Посмотреть сообщение
вывести запросив php-скриптом,
наверное проще было закоментировать пару строчек в
vivodpointsmap.php чтобы не докапывыалось до HTTP_X_REQUESTED_WITH
и просто посмотреть из браузера
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2020, 16:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вывод данных из базы на страницу php mysql
что не так? &lt;?php require_once (&quot;connections/MySiteDB.php&quot;); $localhost = &quot;localhost&quot;; $db...

Нет вывода из базы данных PHP из MYSQL
Добрый день не могу получить данные из таблицы код $query2 = sprintf('SELECT value FROM...

Вытянуть из базы определенные записи mysql php
В таблице tovaru есть атрибут customer, в нем записи повторяются например 1,1,1,1,2,2,2,2,3,3,3...

PhP выводит не все данные из базы mysql
Через админку делаю добавление статьи на сайт ,в базу добавляется .Но на самом сайте(не в админ...

Экспорт в Excel из базы MYSQL через PHP
Есть сайт, который связан в базой данных и через который можно выбирать периоды информации из базы....

Изменение базы данных mysql через php
Бойцы, вообщем пытаюсь изменить бд, через условную админ панель, сделал кнопки и тд. Кнопка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.