我正在尝试创建一个用户可以编辑信息的页面。
我可以使用数组中的值填充表单并更新它们,但是,当它保存并使用不同的数组信息再次访问时,它会显示以前的表单数据。我已经看过清除缓存并在提交页面后将数组设置为NULL,但这些都没有用!
这就是我所拥有的:
$id = ($_GET['id']);
function get_edit_event_details() {
global $connection;
$query = 'SELECT *
FROM events
WHERE id = "$id"';
$event_details = mysql_query($query, $connection);
confirm_query($event_details);
return $event_details;
echo $query;
}
$event_details = get_event_details();
$details = mysql_fetch_array($event_details);
并填充表单值(我也尝试过autocomplete =“off”,但也没有用)
<input type="text" name="event_date" id="event_date" size="27" value="<?php echo $details["date"];?>" autocomplete="off" />
我对PHP比较陌生,能够解决我遇到的每一个问题!
答案 0 :(得分:0)
我知道也许这不是一个真正的答案,但我想指出一些事情:
$id = intval($_GET['id']);
您的ID如何传递给该功能?它在外面,不作为参数传递,也不是全局的。我相信这可能是问题所在,因为您的查询将始终没有和ID用作条件。试试:
get_edit_event_details($ ID){}
个人品味可能,但使用2个函数和外部调用返回值,只是为了获取结果它有点臭。我把整个事情重写为:
function get_edit_event_details($_GET['id'])
{
global $connection;
$id = intval($_GET['id']);
$query = "SELECT * FROM events WHERE id = '$id'";
$result = mysql_query($query, $connection) or trigger_error('Query error: '.mysql_error());
if(mysql_num_rows($result) > 0)
{
return mysql_fetch_array($result);
}
else
{
return FALSE;
}
}
if($details = get_edit_event_details($_GET['id']) :?>
<input type="text" name="event_date" id="event_date" size="27" value="<?php echo $details["date"];?>" autocomplete="off" />
<?php endif;?>
请记住,这仍然不是完美的代码,我知道,有点我的味道:)。您可能想要检查是否在函数内部或外部设置了$ _GET ['id']。