我有这个代码,我用它来一次更新多行,但它只让我一次更新..
你能帮我检查一下吗?我发现它没有任何问题。谢谢!表格:
echo "<td><input type='hidden' name='att_id[$i]' value='{$rows['att_id']}' s/></td>";
echo "<td><input type='text' name='attivita_da_promuovere[$i]' value='{$rows['attivita_da_promuovere']}' /></td>";
echo "<td><input type='text'id='start_date' class='datepicker' title='D-MMM-YYYY' name='start_date[$i]' value='{$rows['start_date']}' /></td>";
echo "<td><input type='text'id='end_date' class='datepicker' title='D-MMM-YYYY' name='end_date[$i]' value='{$rows['end_date']}' /></td>";
echo "<td><input type='text' name='attivita_tip_merc[$i]' value='{$rows['attivita_tip_merc']}' /></td>";
echo "<td><input type='text' name='attivita_da_svolgere[$i]' value='{$rows['attivita_da_svolgere']}' /></td>";
echo "<td><input type='text' name='attivita_tip_personale[$i]' value='{$rows['attivita_tip_personale']}' /></td>";
查询:
$id_job=$_GET['id'];
$size = count($_POST['att_id']);
$i = 0;
while ($i < $size) {
$attivita_da_promuovere= $_POST['attivita_da_promuovere'][$i];
$start_date= $_POST['start_date'][$i];
$end_date= $_POST['end_date'][$i];
$attivita_da_svolgere = $_POST['attivita_da_svolgere'][$i];
$attivita_tip_merc = $_POST['attivita_tip_merc'][$i];
$attivita_tip_personale=$_POST['attivita_tip_personale'][$i];
$id=$_POST['att_id'][$i];
$query = "UPDATE attivita SET attivita_da_promuovere = '$attivita_da_promuovere',attivita_da_svolgere = '$attivita_da_svolgere',attivita_tip_merc = '$attivita_tip_merc',end_date = '$end_date',attivita_tip_personale = '$attivita_tip_personale',start_date = '$start_date' WHERE att_id = '$id' LIMIT 1";
$result=mysql_query($query) or die ("Error in query: $query");
++$i;
答案 0 :(得分:0)
为什么要在查询中提供LIMIT 1
。像
$query = "UPDATE attivita
SET attivita_da_promuovere = '$attivita_da_promuovere',
attivita_da_svolgere = '$attivita_da_svolgere',
attivita_tip_merc = '$attivita_tip_merc',
end_date = '$end_date',
attivita_tip_personale = '$attivita_tip_personale',
start_date = '$start_date' WHERE att_id = '$id'";
答案 1 :(得分:0)
如果只影响一行,你唯一需要注意的就是你的WHERE
子句,它意味着什么以及为什么它只能获得一行。
此外,您的查询中有一个LIMIT 1,在这种情况下,我理解的与您想要的完全相反,因此请将其删除。
新查询类似于:
$ query =“UPDATE attivita SET attivita_da_promuovere = '$ attivita_da_promuovere',attivita_da_svolgere = '$ attivita_da_svolgere',attivita_tip_merc = '$ attivita_tip_merc',end_date ='$ end_date',attivita_tip_personale = '$ attivita_tip_personale',start_date ='$ start_date'WHERE att_id = '$ ID'“;
那里有'echo'块的小提示,您只需使用?>
退出PHP脚本,然后键入HTML并使用<?php
重新打开脚本
答案 2 :(得分:0)
你在这里犯了错误:
您放在页面上的名称是
名= attivita_da_promuovere1
名= attivita_da_promuovere2
名= attivita_da_promuovere3 ..
你尝试将这些帖子读作一个名为'attivita_da_promuovere'的数组($ _ POST ['attivita_da_promuovere'] [$ i])。我不知道怎么会有这样一个数组,因为你给他们个人名字。
你不应该这样阅读这些帖子吗?
$_POST['attivita_da_promuovere'.$i]
答案 3 :(得分:0)
$query = "UPDATE attivita SET attivita_da_promuovere = '$attivita_da_promuovere',attivita_da_svolgere = '$attivita_da_svolgere',attivita_tip_merc = '$attivita_tip_merc',end_date = '$end_date',attivita_tip_personale = '$attivita_tip_personale',start_date = '$start_date' WHERE att_id = '$id'";
在您的更新中试用此代码
答案 4 :(得分:0)
你说你的表格是foreach函数吗? 这是有道理的。
首先,您需要启动一次表单。
ex(正确的做法):
<?php
echo "<form method='post'>";
foreach(){
// rows here
}
echo "</form>";
?>
也许你这样做(错误的方式):
<?php
foreach(){
echo "<form method='post'>";
// rows here
echo "</form>";
}
?>