28
Апр
2021

Передать значение из БД MySQL в переменную php

Отслеживаю геопозицию пользователя на одной странице и передаю через ajax полученные координаты на сервер, чтоб загрузить в базу данных. Проблема возникает при попытке получения координат (переменная $latires в php и нужно передать её в js) из базы данных на другой странице. Я не могу понять, это не выходит получить данные из БД или же не получается передать переменную из php в js. В базе данных 4 столбика: ID, Latitude, Longitude, Direction, таблица называется coords. Коды прилагаются. Буду благодарен любой помощи

index.php:

<?php
    include 'config.php';
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta content="text/html" charset="utf-8">
        <title>Клиент</title>
    </head>
    <body>
        <div id="map-res" style="width:600px; height:300px;"></div>
        <div id="test" style="background:aqua; border-radius:50%; width:50px; height:50px;" onclick="checkcoor()"></div>
    </body>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script type="text/javascript">
        var lati_res = "<?php echo $latires; ?>";
        function checkcoor(){
            console.log(lati_res);
        }
    </script>
    <script src="app.js" type="text/javascript"></script>
    <script src="result.js" type="text/javascript"></script>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&key=AIzaSyB1BVwpFADjaUfSv0ZtpRgs9kan81GOcsk&callback=initialize"></script>
</html>

config.php:

<?php
    $hostname = "localhost";
    $username = "DB_USERNAME";
    $password = "DB_PASS";
    $dbname = "DB_NAME";

    $conn = mysqli_connect($hostname, $username, $password, $dbname);
    if (!$conn) {
          die("Connection failed: " . mysqli_connect_error());
    }

    echo "Connected successfully";

    if($_POST['param']) {
        $param = json_decode($_POST['param']);
        $lati = $param->latitude;
        $longti = $param->longitude;
        
   $sql = "INSERT INTO coords (Latitude, Longitude, Direction) VALUES ('$lati', '$longti', '0')";
    if (mysqli_query($conn, $sql)) {
          echo "New record created successfully";
    } else {
          echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    }
        $query = "SELECT Latitude FROM coords ORDER BY ID DESC LIMIT 1";
        $result = mysqli_query($conn, $query); 

    if($rows = mysqli_fetch_array($result)){
        $latires = $rows['Latitude'];
    } 
}
    mysqli_close($conn);
?>

app.js:

var maptrack, marktrack, lati, longti;

    var geoSuccess = function (position) {
        lati = position.coords.latitude;
        longti = position.coords.longitude;
        var coor = {
            'latitude':lati,
            'longitude':longti
        }
        marktrack = new google.maps.Marker({position:{lat:lati,lng:longti}, map:maptrack});
            $.ajax({
                type:'POST',
                url:'config.php',
                dataType:'json',
                data:"param="+JSON.stringify(coor),
                success:function(data){
                    alert('Success');
                }
            });
    }
    
$(".allow_tr").click(function(){
        navigator.geolocation.watchPosition(geoSuccess);
});
        



var initMap = function() {
    maptrack = new google.maps.Map(document.getElementById('map-canvas-track'), {center:{lat:50.45,lng:30.56},zoom:12});
}




if(!document.URL.includes('index.php')){
    window.initialize = initMap;
}

Источник: https://ru.stackoverflow.com/questions/1275762/%D0%9F%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%82%D1%8C-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8%D0%B7-%D0%91%D0%94-mysql-%D0%B2-%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%83%D1%8E-php

Тебе может это понравится...

Добавить комментарий