Php 使用MySQL insert函数保留HTML表的行顺序
我正在使用一个简单的to-PHP和jQuery脚本将数据从HTML表发送到我的datatabse中。它从每行的每个Php 使用MySQL insert函数保留HTML表的行顺序,php,jquery,mysql,Php,Jquery,Mysql,我正在使用一个简单的to-PHP和jQuery脚本将数据从HTML表发送到我的datatabse中。它从每行的每个td中收集值,并将其插入数据库。这是一个相当普遍的问题,但在将值添加到数据库中时,如何确保保留表的行顺序 我意识到,ORDER BY不能在插入时使用,我会定期插入同一个表,每次插入的表中都有不同的数据,因此我不能使用row ID字段准确返回订单,因为会出现重复。每个tr都有一个ID(我在下面的脚本中没有使用这个函数),那么我们可以在jQuery端做些什么来确保以某种顺序插入记录呢 j
td
中收集值,并将其插入数据库。这是一个相当普遍的问题,但在将值添加到数据库中时,如何确保保留表的行顺序
我意识到,ORDER BY
不能在插入时使用,我会定期插入同一个表,每次插入的表中都有不同的数据,因此我不能使用row ID字段准确返回订单,因为会出现重复。每个tr
都有一个ID(我在下面的脚本中没有使用这个函数),那么我们可以在jQuery端做些什么来确保以某种顺序插入记录呢
jQuery脚本:
$('#myModal').on('click', '#save', function(){
$("#table tr:gt(0)").each(function () {
var this_row = $(this);
var artist = $.trim(this_row.find('td:eq(1)').html());
var title = $.trim(this_row.find('td:eq(2)').html());
$.post('ajax/save.php', { 'artist': artist, 'title':title });
});
});
$artist=$_POST['artist'];
$title=$_POST['title'];
$newartist = mysql_real_escape_string(trim($artist));
$newtitle = mysql_real_escape_string(trim($title));
$con = mysql_connect("localhost","xxxx","xxxx");
mysql_select_db("cdcol", $con);
$sql="INSERT INTO `table 3` (ARTIST, TRACKTITLE)
VALUES ('$newartist', '$newtitle')";
mysql_query( $sql, $con );
echo"Success";
?>
PHP脚本:
$artist=$_POST['artist'];
$title=$_POST['title'];
$newartist = mysql_real_escape_string(trim($artist));
$newtitle = mysql_real_escape_string(trim($title));
$con = mysql_connect("localhost","xxxx","xxxx");
mysql_select_db("cdcol", $con);
$sql="INSERT INTO `table 3` (ARTIST, TRACKTITLE)
VALUES ('$newartist', '$newtitle')";
mysql_query( $sql, $con );
echo"Success";
?>
试过了吗?我在数据库中的id字段上有一个自动增量,这使得以后更容易操作数据库字段。但这并不能解决在插入新行时如何保持HTML表的行顺序,是吗?我是否遗漏了一些明显的信息?请解释一下,我每次都会定期插入同一个表,其中包含不同的数据。对不起,我没有说清楚我的观点。我想说的是,如果每次运行脚本时,我都使用ID 1、2或3按顺序插入行,那么数据库中就会有多个相互冲突的ID实例。我认为最好的方法是,因为每组记录都是一起插入的,所以可以保留一个datetime列并
跟踪\u ID
。当用户下次输入track->4,5,6 track\u id->2,2,2时,插入track->1,2,3 track\u id->将为1,1,1。你明白我的意思吗?使用track_id和datetime列,可以按照插入记录的相同方式获取记录。插入之前,从表中获取max(track\u id)
,并递增1。