如何在JavaScript中更新多个值
首先,我为我糟糕的英语感到抱歉 我正在为学校制作信息系统,在为学生更新数据时遇到问题。学生表单上有兄弟字段。他们可以添加一个或多个兄弟姐妹(一对多关系)。该程序已成功地将兄弟姐妹添加到数据库中(有两个数据库,即学生(id[自动递增-主键]、学生id姓名、性别、年龄等)和兄弟姐妹(id(主键)、学生id、兄弟姐妹姓名、兄弟姐妹年龄等) 但是,当我更新兄弟姐妹数据时,程序失败了 添加兄弟姐妹 php:如何在JavaScript中更新多个值,javascript,php,mysql,json,Javascript,Php,Mysql,Json,首先,我为我糟糕的英语感到抱歉 我正在为学校制作信息系统,在为学生更新数据时遇到问题。学生表单上有兄弟字段。他们可以添加一个或多个兄弟姐妹(一对多关系)。该程序已成功地将兄弟姐妹添加到数据库中(有两个数据库,即学生(id[自动递增-主键]、学生id姓名、性别、年龄等)和兄弟姐妹(id(主键)、学生id、兄弟姐妹姓名、兄弟姐妹年龄等) 但是,当我更新兄弟姐妹数据时,程序失败了 添加兄弟姐妹 php: 名称 年龄 js: 函数addRow(){ var table=document.getE
名称
年龄
js:
函数addRow(){
var table=document.getElementById(“siblingsTable”);
var rowCount=table.rows.length;
var row=table.insertRow(rowCount);
var cell1=行插入单元格(0);
var element1=document.createElement(“输入”);
element1.type=“text”;
element1.name=“兄弟姐妹_name[]”;
元素1.value=“”;
单元格1.附加子元素(元素1);
var cell2=行插入单元格(1);
var element2=document.createElement(“输入”);
element2.type=“text”;
element2.name=“兄弟姐妹年龄[]”;
element2.value=“”;
第2单元。附加子元素(元素2);
}
函数deleteRow(){
var table=document.getElementById(“siblingsTable”);
var rowCount=table.rows.length;
表.deleteRow(rowCount-1);
}
保存到数据库:
if (!empty($_POST['siblings_name']) && !empty($_POST['siblings_age']) && is_array($_POST['siblings_name']) && is_array($_POST['siblings_age']) && count($_POST['siblings_name']) === count($_POST['siblings_age'])) {
$auth_array = $_POST['auth_key'];
$name_array = $_POST['siblings_name'];
$age_array = $_POST['siblings_age'];
for ($i = 0; $i < count($name_array); $i++) {
$auth = mysql_real_escape_string($auth_array);
$name = mysql_real_escape_string($name_array[$i]);
$age = mysql_real_escape_string($age_array[$i]);
mysql_query("INSERT INTO skkk_web_siblings (auth_key, siblings_name, siblings_age) VALUES ('$auth', '$name', '$age')");
}
}
if(!empty($\u POST['sides\u name'])和&!empty($\u POST['sides\u age'])和is\u数组($\u POST['sides\u age'])和计数($\u POST['sides\u name'])==计数($\u POST['sides sides age'])){
$auth_array=$\u POST['auth_key'];
$name\u array=$\u POST['sibbines\u name'];
$age_array=$\u POST['sibles_age'];
对于($i=0;$i
当我想更新数据时,这是我的问题:
$sib = mysql_query("SELECT COUNT(auth_key) FROM skkk_web_siblings WHERE auth_key = '$_GET[id]'");
$totalsiblings = mysql_result($sib,0);
...
$siblings = mysql_query("SELECT * FROM skkk_web_siblings WHERE auth_key = '$_GET[id]'");
while($row = mysql_fetch_array($siblings)){
$id = $row['id'];
$name = $row['siblings_name'];
$age = $row['siblings_age'];
$siblingsname[] = $name;
$siblingsage[] = $age;
}
...
...
...
<table id='siblingsTable'>
<a href='javascript:void(0);' onclick='editRow()'><img src='../images/edit.png'/></a><br />
<th>Name</th>
<th>Age</th>
</table>
...
<script>
function editRow() {
var table = document.getElementById("siblingsTable");
var total = '<?php echo $totalsiblings; ?>';
var name = jQuery.parseJSON('<?php echo json_encode($siblingsname); ?>');
var age = jQuery.parseJSON('<?php echo json_encode($siblingsage); ?>');
var i;
var table = '';
for (i = 0; i < total; i++) {
tbl += '<input type="text" name="siblings_name[]" value="' + name[i] + '"/>';
tbl += '<input type="text" name="siblings_age[]" value="' + age[i] + '"/>';
}
document.getElementById("siblingsTable").innerHTML = table;
}
</script>
...
//updating to database
if (!empty($_POST['siblings_name']) && !empty($_POST['siblings_age']) && is_array($_POST['siblings_name']) && is_array($_POST['siblings_age']) && count($_POST['siblings_name']) === count($_POST['siblings_age'])) {
$name_array = $_POST['siblings_name'];
$age_array = $_POST['siblings_age'];
for ($i = 0; $i < count($name_array); $i++) {
$name = mysql_real_escape_string($name_array[$i]);
$age = mysql_real_escape_string($age_array[$i]);
mysql_query("UPDATE skkk_web_siblings SET siblings_name = '$name', siblings_age = '$age' WHERE auth_key = '$_POST[id]'");
}
}
$sib=mysql\u查询(“从skkk\u web\u同级中选择COUNT(auth\u key),其中auth\u key='$\u GET[id]'”;
$totalsibbins=mysql\u结果($sib,0);
...
$SIBLINES=mysql\u查询(“从skkk\u web\u SIBLINES中选择*,其中auth\u key='$\u GET[id]'”;
while($row=mysql\u fetch\u数组($sides)){
$id=$row['id'];
$name=$row['sides_name'];
$age=$row['SIBLINES_age'];
$siblingsname[]=$name;
$siblingsage[]=$age;
}
...
...
...
名称
年龄
...
函数editRow(){
var table=document.getElementById(“siblingsTable”);
var总计=“”;
var name=jQuery.parseJSON(“”);
var age=jQuery.parseJSON(“”);
var i;
var表=“”;
对于(i=0;i
当我更新一个名字时,它会改变所有兄弟姐妹的名字。我应该怎么做
谢谢您的帮助。您应该使用
同级.id
,并在更新中使用它,而不是身份验证密钥
,因为身份验证密钥
不是唯一的,因此它将更新多行。您可以使用同级.id
作为数组密钥,即name=“sibles\u name[{$id}”
,然后可以在UPDATE
查询中使用它。您应该使用同级.id
,并在UPDATE
中使用它,而不是auth_键
,因为auth_键
不是唯一的,所以它将更新多行。您可以使用同级.id
作为数组键,即名称=“兄弟姐妹名称[{$id}]”
,然后可以在更新查询中使用。
if (!empty($_POST['siblings_name']) && !empty($_POST['siblings_age']) && is_array($_POST['siblings_name']) && is_array($_POST['siblings_age']) && count($_POST['siblings_name']) === count($_POST['siblings_age'])) {
$auth_array = $_POST['auth_key'];
$name_array = $_POST['siblings_name'];
$age_array = $_POST['siblings_age'];
for ($i = 0; $i < count($name_array); $i++) {
$auth = mysql_real_escape_string($auth_array);
$name = mysql_real_escape_string($name_array[$i]);
$age = mysql_real_escape_string($age_array[$i]);
mysql_query("INSERT INTO skkk_web_siblings (auth_key, siblings_name, siblings_age) VALUES ('$auth', '$name', '$age')");
}
}
$sib = mysql_query("SELECT COUNT(auth_key) FROM skkk_web_siblings WHERE auth_key = '$_GET[id]'");
$totalsiblings = mysql_result($sib,0);
...
$siblings = mysql_query("SELECT * FROM skkk_web_siblings WHERE auth_key = '$_GET[id]'");
while($row = mysql_fetch_array($siblings)){
$id = $row['id'];
$name = $row['siblings_name'];
$age = $row['siblings_age'];
$siblingsname[] = $name;
$siblingsage[] = $age;
}
...
...
...
<table id='siblingsTable'>
<a href='javascript:void(0);' onclick='editRow()'><img src='../images/edit.png'/></a><br />
<th>Name</th>
<th>Age</th>
</table>
...
<script>
function editRow() {
var table = document.getElementById("siblingsTable");
var total = '<?php echo $totalsiblings; ?>';
var name = jQuery.parseJSON('<?php echo json_encode($siblingsname); ?>');
var age = jQuery.parseJSON('<?php echo json_encode($siblingsage); ?>');
var i;
var table = '';
for (i = 0; i < total; i++) {
tbl += '<input type="text" name="siblings_name[]" value="' + name[i] + '"/>';
tbl += '<input type="text" name="siblings_age[]" value="' + age[i] + '"/>';
}
document.getElementById("siblingsTable").innerHTML = table;
}
</script>
...
//updating to database
if (!empty($_POST['siblings_name']) && !empty($_POST['siblings_age']) && is_array($_POST['siblings_name']) && is_array($_POST['siblings_age']) && count($_POST['siblings_name']) === count($_POST['siblings_age'])) {
$name_array = $_POST['siblings_name'];
$age_array = $_POST['siblings_age'];
for ($i = 0; $i < count($name_array); $i++) {
$name = mysql_real_escape_string($name_array[$i]);
$age = mysql_real_escape_string($age_array[$i]);
mysql_query("UPDATE skkk_web_siblings SET siblings_name = '$name', siblings_age = '$age' WHERE auth_key = '$_POST[id]'");
}
}