0

我有这段代码,我用它来一次更新多行,但它只会让我更新一次..

你能帮我检查一下吗?我找不到任何问题。谢谢!

表格:

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;
4

5 回答 5

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'";
于 2012-10-04T09:12:56.693 回答
0

如果它只影响一行,那么您唯一需要查看的是您的WHERE子句,它意味着什么以及为什么它只获得 1 行。

此外,您的查询中有一个 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_id = '$开始日期='$id'";

那里的“回声”块的一个小提示,您可以简单地退出您的 php 脚本?>,然后输入您的 HTML 并重新打开您的脚本<?php

于 2012-10-04T09:13:20.813 回答
0

你在这里犯错了吗:

您放在页面上的名称是

名称=attivita_da_promuovere1

名称=attivita_da_promuovere2

名称=attivita_da_promuovere3 ..

并且您尝试将帖子读取为名称为 'attivita_da_promuovere'($_POST['attivita_da_promuovere'][$i]) 的数组。我看不出怎么会有这样的数组,因为你给了他们单独的名字。

你不应该这样看帖子吗?

$_POST['attivita_da_promuovere'.$i]
于 2012-10-04T09:13:59.990 回答
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'";

在您的更新中尝试此代码

于 2012-10-04T09:28:22.050 回答
0

你说你的表格在foreach函数里面?这是有道理。

首先,您需要启动一次表单。

ex(正确的做法):

<?php 
echo "<form method='post'>";
foreach(){
    // rows here
}
echo "</form>";
?>

也许你这样做(错误的方式):

<?php 
foreach(){
    echo "<form method='post'>";
    // rows here
    echo "</form>";
}
?>
于 2012-10-04T10:21:44.280 回答