gpt4 book ai didi

php - 如何通过多重选择从动态生成的行中插入MySQL数据?

转载 作者:行者123 更新时间:2023-11-30 00:03:51 27 4
gpt4 key购买 nike

tableA   tabA_id   name     value         
------------------------------------
Row1 25 nameA 1.25
Row2 26 nameB 4.85
Row3 27 nameA 3.25

tableB tabA_id mytabA_id multiple_tabA_id
--------------------------------------------------
Row1 25 1 1
Row2 25 1 3
Row3 25 1 4
Row4 26 2 1
Row5 26 2 2
Row6 27 1 1
Row7 27 1 2
Row8 27 1 4

tableC tabC_id name
--------------------------
Row1 1 nameA
Row2 2 nameB
Row3 3 nameC
Row4 4 nameD

表C是用户列表。表 A 是我们有用户名、值的表。在表 B 中,我们有与表 A 类似的 View ,因为 mytabA_id 是表 A 中的名称,而 multiple_tabA_id 是多个数组中这些用户的 id。

第一问题是将多个选择保存到数据库(表A)。 第二问题是向 tableB 插入行取决于 tableA。

我想在表 A 中动态添加新行。我有一个通过 JQuery 添加新行的源。我觉得还不错。

function Add(){
counter += 1;

$("#example2 tbody").last().append(
"<tr>"+
"<td>"+counter+ "</td>"+
"<td><input id='name_" + counter + "' type='text' class='form-control'/></td>"+
"<td><input id='value_" + counter + "' type='text' class='form-control'/></td>"+
"<td><select multiple class='form-control' id='multiple'>"+
"<?php $sql = mysql_query('select tabC_id, name from tableC'); while($row=mysql_fetch_array($sql)){ $name=$row['name']; $tabC_id=$row['tabC_id']; ?> <option value='<?echo $tabC_id;?>'><?echo $name;?></option><?}?>"+
"</select></td>"+
"<td><img src='./img/save-icon.png' class='btnSave'/><img src='img/delete-icon.png' class='btnDelete'/></td>"+
"</tr>"
);

$(".btnSave").bind("click", Save);
$(".btnDelete").bind("click", Delete);
};

好的。然后我将输入的值保存到变量并将它们发送到 php 文件。文本是正确的,但我不知道多重选择是否正确。请帮我找出错误。

function Save(){ 
var par = $(this).parent().parent();

var tdname = par.children("td:nth-child(2)");
var tdvalue = par.children("td:nth-child(3)");
var tdmultiple = par.children("td:nth-child(4)");

var name = tdname.children("input[type=text]").val();
var value = tdvalue.children("input[type=text]").val();
var multiple = $( "#multiple" ).val() || [];

jQuery.post("table_save_ajax.php", {
name:name,
value:value,
multiple:multiple
}, function(data, textStatus){
if(data == 1){
$('#response').html("Successfull!!");
$('#response').css('color','green');
$('td:nth-child(5)').hide();

tdname.html(tdname.children("input[type=text]").val());
tdvalue.html(tdvalue.children("input[type=text]").val());
tdmultiple.html(multiple.join( ", " ));

}else{
$('#response').html("Some Error Occurred");
$('#response').css('color','red');
}
});

table_save_ajax.php

配置中仅连接到数据库。这是正确的。

<?php
include("config.php");
$name = $_POST['name'];
$value = $_POST['value'];
$multiple = $_POST['multiple'];
$sql = mysql_query("INSERT INTO tableA (name, value, multiple) VALUES ('$name','$value','$multiple')");

if(mysql_affected_rows()>0){
echo "1";
}else{
echo "2";
}
?>

所有内容都是正确的,无需多重选择。我想知道如何正确地进行多项选择。我想知道如何将数据插入到 tableB 中。如何从数组中解析这些数据并将其保存到数据库。感谢您的回复。

最佳答案

我试过了,这对我有好处。它是table_save_ajax.php

$sql = mysql_query("INSERT INTO tableA (name, value) VALUES ('$name','$value')");

if($sql){
$sqlselect = mysql_query("SELECT id FROM tableA ORDER BY id DESC LIMIT 1");
if(mysql_num_rows($sqlselect) == 1){
$row=mysql_fetch_array($sqlselect);
$lastid=$row['id'];

foreach ($multiple as &$value) {
$sqlmultiple = mysql_query("INSERT INTO tableB (tabA_id, mytabA_id, multiple_tabA_id) VALUES ('$lastid', '$name', '$value',)");
if(!$sqlmultiple){
$sqldelete = mysql_query("DELETE FROM tableA WHERE id = '$lastid'");
}
}
}
}

关于php - 如何通过多重选择从动态生成的行中插入MySQL数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24774415/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com