Ich habe eine Broschüre Karte auf meiner Website. Was ich tun möchte, ist, die Positionsdaten von der Markierung zu erhalten, die ein Benutzer setzt, und sie über Sitzung in meine Datenbank zu übertragen. Ich kann es nicht schaffen, dass meine Datenbank userPos nicht aktualisiert wird. Kannst du mir erklären, was ich falsch mache? (Dbconnect.php bereits funktioniert, getestet)mit Ajax, um Daten aus der Broschüre Map
das ist mein home.php Datei, in der die Karte ist:
<?php
ob_start();
session_start();
require_once 'dbconnect.php';
if(!isset($_SESSION['user'])) {
header("Location: index.php");
exit;
}
$res=mysqli_query($conn,"SELECT * FROM `users` WHERE userId=".$_SESSION['user']);
$userRow[]=mysqli_fetch_array($res);
echo json_encode($userRow);
?>
<script>
$(document).ready(function(){
var mymap = L.map('map').setView([51.505, -0.09], 13);
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=xxx', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
maxZoom: 18,
id: 'mapbox.streets',
accessToken: 'xxx'
}).addTo(mymap);
var marker;
mymap.on('click', function (e) {
if (marker) {
mymap.removeLayer(marker);
}
marker = new L.Marker(e.latlng).addTo(mymap);
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var user = <?php echo json_encode($userRow['userId']); ?>;
xmlhttp.open("GET","homemappositions.php?q="+ e.latlng + "&r=" + user, true);
xmlhttp.send();
});
});
</script>
und das ist homemappositions.php:
<?php
include_once('dbconnect.php');
$r = $_GET['r'];
$q = $_GET['q'];
$query2 = mysqli_query($conn,"UPDATE users SET userPos =". $q ."WHERE userId=". $r);
echo "succesfull" ;
?>
Die 'WHERE'-Klausel in der' update' Anweisung verwendet, was im Allgemeinen als Platzhalter verwendet wird, - das ist die Absicht? Normalerweise würde das mit einem 'WHERE col LIKE '% value%' verwendet werden. Daher würde ich denken, dass Ihre update-Anweisung keinen Benutzer findet, der eine Benutzer-ID'%% '??? –
RamRaider
behoben, aber immer noch nicht aktualisiert meine Datenbank – Peslis
Wenn Sie die update SQL-Anweisung echo vor dem Versuch, es auszuführen, es sieht korrekt aus und führt es in einem Client GUI? – RamRaider