2011-03-13 80 views
1

当前我在使用相同页面的同时在我的php/mysql驱动的网站中添加和编辑记录。添加工作正常,但更新时有一个问题,我正在寻求帮助。在同一页面上添加/编辑时遇到PHP问题

有2页 managedata.php显示表中的记录和编辑记录有一个编辑按钮,我从中发送2个值update = 1和id = n(我的数据的id将编辑),它需要我的adddata页面这样

adddata.php?update=1&id=7 

,并在adddata页面,如果我编辑的字段,然后点击保存第一枪它完美 但如果有任何错误,我展示错误然后url更改为

adddata.php so update m颂歌将是错误的,它创建新的记录

我正在寻求这个问题的帮助。 1)我怎样才能在查询字符串中设置的值(的UpdateMode多少时间重新加载页面),所以始终为1

感谢

+0

要小心你的用户决定更新与插入,你应该有强大的检查/许可基于公关在用户未通过认证等情况下不会发生这种情况; – Jakub 2011-03-13 07:22:40

回答

1

如果您要根据用户的输入是否更新插件的选择数据库中的新记录通过URL发送一个参数,告诉脚本该做什么,然后根据该参数处理信息。

例子:???比方说,你通过URL传递信息,像这样的脚本add_data.php更新= new_entry & ID = 0或add_data.php更新= new_entry

或add_data.php更新= old_entry & ID = 7

然后做这样的事情:

if (empty($_POST['id'])) { 
     $id = FALSE; 
    } else { 
     $id = (int) $_POST['id']; //Be sure that the id value received is a number with (int) 
} 

//So what are we doing again? Editing or adding new record? 
if (empty($_POST['update'])) { 
     $update= FALSE; 
    } else { 
     $update= $_POST['update']; 
} 


$stamp = md5(uniqid(rand(), true)); // I like to do this because every entry into the database would then be unique, and we can always edit without the system saying we are making duplicate content. This is good in case the user tries to edit and doesn't really edit but presses enter. 
if ($update && $update == 'new_entry') { //Check that everything went well with validations above. We don't check here for an id because this is a new record and so there should be no id after all. 
    //Insert new record into the database 

} elseif ($id && $id != 0 && $update && $update == 'old_entry') { 
    //Update the database 
} 
+0

也感谢你...... btw什么是$ _POST ['内容'] – wannabeprogrammer 2011-03-13 07:59:03

+0

'内容'只是你想要放入数据库的任何东西。为了避免混淆,我已将其删除。顺便说一句,请记住不要检查第一个if($ update && $ update =='new_entry')中的id {因为如果它是一个新记录,那么您将没有id并且在那里为一个id进行检查将不会工作。如果您认为这可以帮助您更多,请接受答案。谢谢。 – clientbucket 2011-03-13 08:16:49

+0

我已投票提出您的问题。请投我的答案。如果你认为这是答案。谢谢。 – clientbucket 2011-03-13 08:40:10

0

只需ID检查 虽然添加新记录ÿ你不需要身份证。检查它像

$id = $_REQUEST['id']; 
if(!empty($id)){ 
//add mode; 
} 
else 
{ 
    //edit mode 
} 

在编辑模式下 简单添加隐藏场像

<input type="hidden" name="pid" value="<?php echo $_REQUEST['id']; ?>" /> 

在添加模式PID将是空和编辑模式下,它就会有一定的价值,所以你可以检查以上再次编码

Here if empty 

//insert query 

else 

// update query 
+0

谢谢,我会尝试 – wannabeprogrammer 2011-03-13 07:58:20

相关问题