我正在使用它:
foreach($affid as $id) {
$id = @mysql_real_escape_string(strip_tags($id));
$otherid = $_POST['postid'];
$sql = "UPDATE dlbprog SET affId=".$id." WHERE id=".$otherid;
echo $sql;
//@mysql_query($sql) or die(mysql_error());
}
结果就是这样:
UPDATE dlbprog SET affId=323 WHERE id=5
UPDATE dlbprog SET affId=424 WHERE id=5
我希望它说:
UPDATE dlbprog SET affId=323 WHERE id=1
UPDATE dlbprog SET affId=424 WHERE id=5
(它将最后的结果保留为当前结果)
这是我的表格:
<table border="1" width="90%" align="center" cellspacing="0" cellpadding="2">
<tr>
<td align="left" colspan="2">'.$row["description"].'</td>
</tr>
<tr>
<td align="left" width="55%">
To Sign Up <a href="'.$row["progUrl"].'" target="_blank">Click Here</a>
<br />
<input type="checkbox" name="blocked" value="'.$row['ownerId'].'" />
Block this program
</td>
<td align="left" width="45%">
Your Affiliate Id:
<input type="text" class="input" size="30" name="affid[]" value="'.$row['affId'].'">
<input name="postid" value="'.$row["id"].'">
</td>
</tr>
</table>
<p> </p>
答案 0 :(得分:4)
$_POST['postid']
是已过帐的值。这个值在你的循环中不会改变,所以很明显它在每次迭代中都是相同的。
答案 1 :(得分:0)
更改
<input name="postid" value="'.$row["id"].'">
到
<input name="postid[]" value="'.$row["id"].'">
将PHP更改为
foreach($i = 0; $i < count($affid); $i++) {
$id = @mysql_real_escape_string(strip_tags($affid[$i]));
$otherid = @mysql_real_escape_string(strip_tags($postid[$i]));
$sql = "UPDATE dlbprog SET affId=".$id." WHERE id=".$otherid;
echo $sql;
//@mysql_query($sql) or die(mysql_error());
}