Recover Mysql data and save to a vector

Posted on

Question :

Reformulating the question .. I have a MySQL database, inside it contains a table named map, inside the map table I have the fields idmapa (auto_increment), lat (which stores the latitude of a map position), lng ( which stores the length of a map position), detail (which stores the details that the user can insert, referring to the position of the map) and image (which stores only the name of the image referring to the position of the map). The ajax script below sends the data I want to save in the database to a php file. Within the php file, I have an if, which will receive the data sent by ajax in order to save in the database within the map table the respective data according to the fields of the database quoted above.

What I want to do: I need to do the reverse process, ie, request the map table data to the php, using ajax in the request, but after requests, I want to save this data in specific vectors, so that later I can create a loop to add this data to a markup on the map.
NOTE: I’m using Google Maps API Javascript.

PHP saving in the bank


 $latitude = $_GET['latitude'];
 $longitude = $_GET['longitude'];
 $detalhe = $_GET['detalhe'];
 $imagem = $_GET['imagem'];

 $SQL = "INSERT INTO mapa (lat, lng, detalhe, imagem) VALUES ('$latitude','$longitude','$detalhe','$imagem')";

 $re = mysql_query($SQL, $serve)or die(mysql_error()); 
 echo $SQL;

Ajax script that sends the data to php


  type: "get",
  url: $server+"/conecta.php",
                 data: "latitude="+$tlati+"&longitude="+$tlong+"&detalhe="+$detalhe+"&imagem="+$imagem+"&acao=btn_finaliza",
                                success: function(data) {
                                    navigator.notification.alert('Problema cadastrado', '', 'ok');}


After evaluating the tips, I’m trying this way:


if($_GET['acao']== 'marcacao'){

 $SQL = "SELECT * FROM mapa";
 $resultados = mysql_query($sql)or die (mysql_error());

 if ($linha = @mysql_num_rows($resultados) == 0){
 echo 0;

     echo $linha['lat'];
     echo $linha['lng'];

Java Script and Ajax:

     function marcacao(){       
        type: "get",
        url: $server+"/conecta.php",
        data: 'acao=marcacao',
        success: function(data) {
        // le o retorn de data, que já será um array/vetor, e popula seu mapa com API do Google Maps

            var map = new google.maps.Map(
                      center : new google.maps.LatLng($lat, $lng), 
                      zoom : 5, 
                      mapTypeId : google.maps.MapTypeId.ROADMAP 

            var image = 'images/ray.png';

            var marker = new google.maps.Marker(
                        title : "VOCÊ ESTÁ AQUI: "+$lat+", "+$lng,
                        position : new google.maps.LatLng($lat, $lng),
                        map: map,
                        icon: image




However, I think the way I’m passing the php variables to javascript (echo $ line [“lat”] and echo $ line [“lng”]]) are wrong, so the markings on the map do not are being made.


Answer :

@ G.Vilela

You already have 90% of the way, so it’s easy.

IMPORTANT: I am not a PHP programmer.


Instead of making a PHP to respond to everything conecta.php , create a structure with more expensive APIs that will even make your code more organized, semantic and responsible.



  • GET : To recover data
  • POST : To enter data
  • PUT : To change data
  • DELETE : To delete data

Then your /api/mapa/post.php , responsible for entering MAP data, will look something like this:

 $latitude = $_POST['latitude'];
 $longitude = $_POST['longitude'];
 $detalhe = $_POST['detalhe'];
 $imagem = $_POST['imagem'];

 $SQL = "INSERT INTO mapa (lat, lng, detalhe, imagem) VALUES ('$latitude','$longitude','$detalhe','$imagem')";

 $re = mysql_query($SQL, $serve) or die(mysql_error()); 

And to retrieve map data, do /api/mapa/get.php something like this:

 $latitude = $_GET['latitude'];
$longitude = $_GET['longitude'];

$SQL = "SELECT * FROM mapa WHERE lat = $latitude AND lng = $longitude";

$re = mysql_query($SQL, $serve) or die(mysql_error());

// Trecho para retornar o resultado da consulta em JSON
echo "[";
// Para cada linha retornado pelo SELECT
echo "{"lat"": $lat, ""lng"": $lng, ""detalhe"": ""$detalhe"", ""imagem"": ""$imagem"" }""

Leave a Reply

Your email address will not be published. Required fields are marked *