2011-11-06 121 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