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

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

26.06.2020, 15:59. Показов 1341. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые программисты. Я новичок самоучка, это не моя основная профессия но мне очень интересно программировать изучать и создавать сайты. А потому не гневайтесь на меня ежели я чего то не так написал. Спасибо.
Предистория: Писал портал на 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);
 
}
 
 
?>
Очень прошу, помогите пожалуйста уважаемые мастера и профи в этой области, мучаюсь уже давно и не могу решить задачу самостоятельно. Спасибо всем кто ответит!
Миниатюры
PHP 7 вывести метки на карту из базы MySQL   PHP 7 вывести метки на карту из базы MySQL  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.06.2020, 15:59
Ответы с готовыми решениями:

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

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

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

9
0 / 0 / 0
Регистрация: 26.06.2020
Сообщений: 6
26.06.2020, 16:38  [ТС]
Пробовал проверить код через встроенную в OpenServer тузлу, она показала что жалуется конкретно на две строчки в файле vivodpointmap.php в которых присутствуют два массива array. Ума не приложу, что не так с массивами???
0
Невнимательный
 Аватар для ft4l
3107 / 1279 / 358
Регистрация: 08.02.2013
Сообщений: 7,490
Записей в блоге: 2
26.06.2020, 16:41
Цитата Сообщение от 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
Сообщений: 6
26.06.2020, 16:50  [ТС]
"как-то можете посмотреть то получает это XMLHttpRequest ?"
Уважаемый x_lab
А как это можно посмотреть?
0
Невнимательный
 Аватар для ft4l
3107 / 1279 / 358
Регистрация: 08.02.2013
Сообщений: 7,490
Записей в блоге: 2
26.06.2020, 17:00
Цитата Сообщение от 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
Сообщений: 6
29.06.2020, 11:11  [ТС]
Хорошо, может быть подскажете как просто вывести метки ну или то что записано в таблицу на страничку в любое место. Мне бы хотя бы просто вывести на страничку а дальше может бы я разобрался...
Вот старый код ещё до переделки с 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
Невнимательный
 Аватар для ft4l
3107 / 1279 / 358
Регистрация: 08.02.2013
Сообщений: 7,490
Записей в блоге: 2
29.06.2020, 14:19
Цитата Сообщение от 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
Сообщений: 6
29.06.2020, 16:28  [ТС]
Да в том то и дело что я запутался как это реализовать. Мне бы хоть как - нибудь оно работало, хоть на хромой собаке но метки должны отображаться... Весь смысл проекта в этих метках... Что-то подставлял Ваш код, ошибок тоже не вижу но по прежнему метки из базы не выводит...
0
Невнимательный
 Аватар для ft4l
3107 / 1279 / 358
Регистрация: 08.02.2013
Сообщений: 7,490
Записей в блоге: 2
29.06.2020, 16:57
Цитата Сообщение от 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
0 / 0 / 0
Регистрация: 26.06.2020
Сообщений: 6
02.03.2021, 13:37  [ТС]
Пока думал как решить вопрос, выяснил что если в настройках OPEN Server поменять с PHP_7.3 на PHP_7.1 то все метки выводятся на экран а обратно на PHP_7.3 не выводятся. А мне очень надо чтобы все метки выводились на всех последних версиях 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
    require_once 'bd.php'; // подключаем скрипт     
        
            
($GLOBALS["___mysqli_ston"] = mysqli_connect("localhost", "root", "", "ymaps_bd" )) or die ("Ошибка ". mysqli_error($GLOBALS["___mysqli_ston"]));
    // выполняем операции с базой данных
$query ="SELECT * FROM ymapapiv2_markers";
 
 
 
$result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link)); 
if($result)
{
    echo "Выполнение запроса прошло успешно";
}       
    
            //*************************
  $sql = mysqli_query($link, 'SELECT `ID`, `iconText`, `stylePlacemark` FROM `ymapapiv2_markers`');
  while ($result = mysqli_fetch_array($sql)) {
    echo "{$result['iconText']}: {$result['stylePlacemark']}";
  }
    // Выбор Бд
 
define('YMAPS_BD','ymaps_bd');
 
define('YMAPAPIV2_MARKERS','ymapapiv2_markers');
define('HOST', 'localhost');
 
define('USER', 'root');
 
define('PASSWORD', '');
 
define('DATABASES','dataBases');
 
//////////////////////////////////////////////////////////////////////////////////////////////////////////  
mysqli_select_db($GLOBALS["___mysqli_ston"], YMAPS_BD) or die(mysqli_error($GLOBALS["___mysqli_ston"]));        
            
$del = mysqli_query($GLOBALS["___mysqli_ston"], "DELETE FROM `ymapapiv2_markers` WHERE `register_date` < now() - interval 1 DAY");
 
// mysqli_query($GLOBALS["___mysqli_ston"], $strSQL);  ВКЛЮЧИ ЕСЛИ ЧТО
    // Закрыть соединение с БД
    ((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
 
 
    ?>          
 
 
 
    <!--<h1>Запись удалена!</h1>   
<!------------------КОНЕЦ АВТОМАТИЧЕСКОЕ--Удаление меток ----------------------------------------------->       
 
 
 
 
 
      
 
 
<!--/////////////////////////////////////////////////////////////////////////////////*///-->              
              <title>Добавление меток пользователями - Запись в базу данных и вывод на карту - API Яндекс.Карт v2.x</title>
    
 
    <script type="text/javascript">
        ymaps.ready(init);
//Определение начальных параметров карты
        function init () {
                    var myMap = new ymaps.Map("map", {
                    center: [56.326944, 44.0075], 
                    zoom: 13
                }, {
                    balloonMaxWidth: 600
                });
            
        
            
            //Добавляем элементы управления  
            myMap.controls                
                .add('zoomControl')                
                .add('typeSelector')                
                .add('mapTools');
                
            
            
 
            //Запрос данных и вывод маркеров на карту
        $.getJSON("vivodpointsmap.php",
        function(json){
                for (i = 0; i < json.markers.length; i++) {
 
                    var myPlacemark = new ymaps.Placemark([json.markers[i].lat,json.markers[i].lon], {
                    // Свойства
                    iconContent: json.markers[i].icontext, 
                    hintContent: json.markers[i].hinttext,
                    balloonContentBody: json.markers[i].balloontext                   
                    }, {
                    // Опции
                    preset: json.markers[i].styleplacemark                  
                });
 
                // Добавляем метку на карту
                myMap.geoObjects.add(myPlacemark);
                
 
            }
 
        });
Подскажите пожалуйста как мне его исправить, чтобы метки выводились на карту? Спасибо.
Миниатюры
PHP 7 вывести метки на карту из базы MySQL  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.03.2021, 13:37
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru