javascript - 按顺序将数组值传递给数据库

标签 javascript php

我只是将我的纬度、经度按顺序传递给 mysql 数据库。下面是将数据发布到数据库的代码:

for (var i = 0; i < latLngs.length; i++) {
  $.post('send.php', {
      username: name,
      latitude: latLngs[i].lat,
      longitude: latLngs[i].lng
    }, function(data) {
      $('#result').html(data);
    });
}

和 send.php:

<?php
$name = $_POST['username'];
$lat = array($_POST['latitude']);
$arrlength = count($lat);
$lnt = array($_POST['longitude']);
$link = @mysql_connect("localhost","root","") or die("cannot connect");
@mysql_select_db("beta") or die("cannot select db");
for ($x = 0; $x <$arrlength; $x++) {
    $query="insert into belcheer(username,lat, lng) values('$name','$lat[$x]','$lnt[$x]')";
    @mysql_query($query) or die("cannot run query");
}
@mysql_close($link);
?>

这是我来自用户 input from user 的原始数据但数据库中的数据顺序不正确not ordered .我该如何解决这个问题?

更新了! 当我将数据插入数据库时​​,它成倍增加。我的意思是我的数组长度是 4,但数据库记录变成了 16。为什么会这样?

for ($x = 0; $x <count($lat); $x++){
    $query="INSERT INTO belcheer(username,lat, lng) VALUES('user','$lat[$x]','$lng[$x]')";
    @mysql_query($query) or die("cannot run query");
}

最佳答案

浏览器使用连接池向服务器发送请求,因此多个帖子/请求将同时发生,服务器可能首先处理稍后的请求,这就是您所看到的。

如果每个帖子都等待上一个帖子完成,您只能强制执行正确的顺序。

由于您还实现了 send.php,因此最好的选择是在一个请求中发送所有数据:

JavaScript

$.post('send.php', { username: name, latLngs: JSON.stringify(latLngs) }, function(data) {
    $('#result').html(data);
});

PHP

$latLngs = json_decode($_POST['latLngs']);
// Now you can work with $latLngs array in PHP

关于javascript - 按顺序将数组值传递给数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33998069/

相关文章:

javascript - ffmpeg 错误 : Can't make thumbnail from video in javascript

javascript - jQuery:是否可以在一个选择器中同时测试输入类型和属性?

javascript - Jquery UI 对象——可以让它们接受多个配置对象吗?

php - php 中子类构造函数如何与父类构造函数交互?

JavaScript,如何在工具提示中显示 'current' 数据而不进行轮询?

javascript - React-materialize-css 模态不工作,因为它无法读取 M 的模态类

php - 按字母顺序对文件行数组进行排序

php - 正则表达式拆分电子邮件地址

php - 我用这个 SigninController 做错了什么

php - 如何将字符串与字符和数字分开