2011-11-06 119 views
0

在此先感谢。MYSQL PHP通过html表格更新db表信息

我想在我的数据库中更新信息,但我没有运气,也没有错误消息。

这里是页代码(PID或POST_ID是在URL):

<?php 
include('page with functions.php'); 


if (isset($_GET['pid'], $_POST['title'], $_POST['body'])){ 

if (edit_post($_GET['pid'], $_POST['title'], $_POST['body'])){ 
header("Location: blog_edit.php?pid={$_GET['pid']}"); 
}else{ 
header("Location: some location.php"); 
} 

die(); 

} 

?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Blog Edit</title> 
</head> 

<body> 

<div> 
    <?php 

if (isset($_GET['pid']) ===false || valid_pid($_GET['pid']) === false){ 
echo 'Invalid post ID'; 
}else{ 
$post = get_post($_GET['pid']); 

    ?> 

<h2><?php echo $post['title']; ?></h2> 


<hr /> 

<p><?php echo $post['body']; ?></p> 

<hr /> 



    <form action="" method="post"> 
     <p> 
<label for="title">Title</label> 
     <input type="text" name="title" id="title" value="<?php echo $post['title']; ?>"/> 
     </p> 
     <p> 
      <textarea name="body" rows="20" cols="60"><?php echo $post['body']; ?></textarea> 
     </p> 
     <p> 
      <input type="submit" value="Edit Post" /> 
     </p> 
    </form> 
<?php 
} 
?> 
</div> 
</body> 
</html> 

这里是函数(PID或POST_ID是在URL):

// edits a blog entry 
function edit_post($title, $body){ 

$title = mysql_real_escape_string(htmlentities($title)); 
$body = mysql_real_escape_string(nl2br(htmlentities($body))); 

mysql_query("UPDATE `posts` (`post_title`, `post_body`) SET `post_title` = '{$title}' AND `post_body` = '{body}' WHERE `post_id` = {$pid}"); 

} 

不限帮助将非常感谢! 仅供参考我是PHP MYSQL的新手,所以请客气。

+0

'的mysql_query(“UPDATE'posts'('post_title','post_body')SET'post_title' = '{$标题}' 和'post_body' = '{$体}' WHERE'post_id' = {$ pid}“);''我认为你在'body'之前错过了美元。 – abhinav

+0

愚蠢的错误,但仍然没有这样的运气! – KGDD

回答

1
if (edit_post($_GET['pid'], $_POST['title'], $_POST['body'])){ 
header("Location: blog_edit.php?pid={$_GET['pid']}"); 
}else{ 
header("Location: some location.php"); 
} 

您在函数调用中传递了三个参数,但函数定义只有两个参数。

function edit_post($title, $body){ 

$title = mysql_real_escape_string(htmlentities($title)); 
$body = mysql_real_escape_string(nl2br(htmlentities($body))); 

mysql_query("UPDATE `posts` (`post_title`, `post_body`) SET `post_title` = '{$title}' AND `post_body` = '{body}' WHERE `post_id` = {$pid}"); 

} 

另外,从函数返回一个布尔值。

function edit_post($pid, $title, $body){ 

$title = mysql_real_escape_string(htmlentities($title)); 
$body = mysql_real_escape_string(nl2br(htmlentities($body))); 

$result = mysql_query("UPDATE `posts` (`post_title`, `post_body`) SET `post_title` = '{$title}' AND `post_body` = '{body}' WHERE `post_id` = {$pid}"); 

echo $result; 
} 
+0

添加了pid,但仍然没有运气。 – KGDD

+0

mysql_query返回什么?你可以'回声相同,并发布结果? – abhinav

+0

对不起,我对此很新,我一直在教程..我会怎么做。 – KGDD