在我的 MySQL 数据库中,用户可以通过单击用户想要更新其值的字段旁边的 UPDATE 按钮,通过结果表更新数据库中的值(见下文)。
car colour update field
1 Mercedes blue UPDATE BUTTON
2 VW grey UPDATE BUTTON
3 Opel red UPDATE BUTTON
4 Alfa Romeo white UPDATE BUTTON
5 Renault pink UPDATE BUTTON
该表由“foreach”循环生成。每次在表中写入新行时,UPDATE BUTTON 都是 FORM ACTION 语句的一部分,其中 ACTION 后的文件名有一个变量(即 $New_Update_File_Name)。该变量在循环的每次运行中都填充有唯一的文件名。在我的验证回显语句中,$New_Update_File_Name 在每次循环运行中都完全符合我的要求,如我的回显语句的输出所示:
cars[Mercedes] = blue
New_Update_File_Name = Update_blue-SESSION.php
cars[VW] = grey
New_Update_File_Name = Update_grey-SESSION.php
cars[Opel] = red
New_Update_File_Name = Update_red-SESSION.php
cars[Alfa Romeo] = white
New_Update_File_Name = Update_white-SESSION.php
cars[Renault] = pink
New_Update_File_Name = Update_pink-SESSION.php
但是,如果我单击任何 UPLOAD BUTTON,它们都具有与第一个 UPLOAD BUTTON 相同的值:Update_blue-SESSION.php,而不是我想要的,即每个 UPLOAD BUTTON 指向该行的正确 New_Update_File_Name。我不知道为什么这没有发生。非常感谢任何帮助。我的代码出现在下面。
<?php
// BUILD THE CAR TABLE WITH UPDATE BUTTON
$cars = array("Mercedes"=>"blue","VW"=>"grey","Opel"=>"red","Alfa Romeo"=>"white","Renault"=>"pink");
$counter = 1;
echo "<table>
<tr>
<th></th>
<th>car</th>
<th>colour</th>
<th>update field</th>";
foreach ($cars as $field => $value)
{
$Update_File_Name = 'Update_-SESSION.php';
$New_Update_File_Name = substr_replace($Update_File_Name,$cars[$field],-12, 0);
echo "cars[$field] = ".$cars[$field]."<br />";
echo "New_Update_File_Name = ".$New_Update_File_Name."<br />";
echo "<tr class='alt'>
<td>$counter</td>
<td>$field</td>
<td>$value</td>
<td><form action='$New_Update_File_Name' method='post'>
<input type='submit' value='update'></td>
</tr>";
$counter++;
}
echo "</table>";
?>