我通过查询从数据库中提取两个ID。一个是表的唯一主键(temp_id
),一个不是(auto_id
)。查询给了我1,477条记录。
当我将这些添加到这样的数组中,然后var_dump()
数组时,我得到完整的1,477:
<input type="checkbox" name="temp_id[]" value="<?=$auto_id?>">
但是,当我使用此代码时,突然该数组只包含1,001:
<input type="checkbox" name="temp_id[<?=$temp_id?>]" value="<?=$auto_id?>">
这有什么固有的原因吗?据我所知,因为$temp_id
是唯一的,所以这不应该导致数据中的任何“冲突”或覆盖的密钥。
FORM CODE:
<?php
if (!isset($_GET['date']) || !filter_var($_GET['date'], FILTER_VALIDATE_INT)) {
header("Location: ./");
exit();
}
$date = $_GET['date'];
$upload_date = gmdate("Y-m-d H:i:s", $date);
require_once("db.php");
$automatch_query = mysql_query("SELECT temp_id, auto_id FROM advertisers INNER JOIN update_tempdata ON advertisers.advertiser_id = update_tempdata.auto_id WHERE auto_id > 0 AND upload_date = '$upload_date' ORDER BY advertiser_name");
?>
<form action="match-auto-script.php" method="post">
<?php
while ($automatch_data = mysql_fetch_assoc($automatch_query)) {
extract($automatch_data);
?>
<input class="toggleable" type="checkbox" name="temp_id[<?=$temp_id?>]" value="<?=$auto_id?>" checked>
<?php
}
?>
</form>
SCRIPT:
<pre><?php var_dump($_POST); ?></pre>
答案 0 :(得分:0)
感谢@DCoder对其他主题中答案的链接,我使用以下解决方案:
<input type="checkbox" name="temp_id[][<?=$temp_id?>]" value="<?=$auto_id?>" checked>
这为我提供了所有1,477条记录作为拥有的数组,但至少我在每个唯一temp_id
和非唯一auto_id
之间都有重要的链接。