2016-11-21 26 views
0

私は個人的なウェブサイトを作っていますが、手動でphpmyadminに行かなくても自分の投稿を追加/編集するのがちょっと簡単になりました。PHPとMySQL - 更新クエリデータベースが更新されていません

edit_post.phpページに移動してupdateを押すと、pidの横に「=」記号(例えば、foo.php?pid = 3)が表示され、ブログページにリダイレクトさせるとそれを更新しません。

ブログページ

<?php 
 
\t session_start(); 
 
\t include_once("../IncBlog/db.php"); 
 
?> 
 
<?php include "../Includes/navHead.php"; ?> 
 
\t \t <title>Adam Brickhill - Life Journal </title> 
 
\t </head> 
 
\t <body> 
 
\t \t <div class="box"> 
 
\t \t \t <div class="header"> 
 
\t \t \t \t <nav class="nav"><p class="title"><a class="postLink" href="../IncBlog/post.php">- Lone Tree -</a></p></nav> 
 
\t \t \t </div> 
 
\t \t \t <!-- JOURNAL !--> 
 
\t \t \t <?php 
 
\t \t \t \t require_once("../nbbc/nbbc.php"); 
 

 
\t \t \t \t $bbcode = new BBCode; 
 

 
\t \t \t \t $sql = "SELECT * FROM posts ORDER BY id DESC"; 
 

 
\t \t \t \t $res = mysqli_query($db, $sql) or die(mysqli_error()); 
 

 
\t \t \t \t $posts = ""; 
 

 
\t \t \t \t if (mysqli_num_rows($res) > 0) { 
 
\t \t \t \t \t while ($row = mysqli_fetch_assoc($res)) { 
 
\t \t \t \t \t \t $id = \t \t $row['id']; 
 
\t \t \t \t \t \t $title = \t $row['title']; 
 
\t \t \t \t \t \t $img = \t \t $row['img']; 
 
\t \t \t \t \t \t $content = \t $row['content']; 
 
\t \t \t \t \t \t $date = \t $row['date']; 
 

 
\t \t \t \t \t \t $admin = "<div><a href='../IncBlog/del_post.php?pid$id'>Delete</a>&nbsp;<div><a href='../IncBlog/edit_post.php?pid$id'>Edit</a>"; 
 

 
\t \t \t \t \t \t $output = $bbcode->Parse($content); 
 

 
\t \t \t \t \t \t ob_start(); 
 
\t \t \t \t \t \t \t include('../IncBlog/blogSkel.php'); 
 
\t \t \t \t \t \t \t $posts .= ob_get_contents(); 
 
\t \t \t \t \t \t ob_end_clean(); 
 
\t \t \t \t \t } 
 
\t \t \t \t \t echo $posts; 
 
\t \t \t \t } 
 
\t \t \t \t else { 
 
\t \t \t \t \t echo "There are no posts to display"; 
 
\t \t \t \t } 
 
\t \t \t ?> 
 
\t \t \t <div class="journal"> 
 
\t \t \t \t <div class="catagories"> 
 
\t \t \t \t 
 
\t \t \t \t </div> 
 
\t \t \t \t <!-- Date !--> 
 
\t \t \t \t <!-- Picture !--> 
 
\t \t \t \t <!-- Description !--> 
 
\t \t \t </div> 
 
\t \t \t 
 

 
\t \t \t <?php include "../Includes/navFooter.php"; ?> 
 
\t \t \t <!-- SCRIPTS !--> 
 
\t \t \t <?php include "../Includes/navScriptImport.php"; ?> 
 
\t \t </div> 
 
\t </body> 
 
</html>

ページの編集

<?php 
 
\t session_start(); 
 
\t include_once("db.php"); 
 

 
\t if (!isset($_SESSION['username'])) { 
 
\t \t header("Location: login.php"); 
 
\t \t return; 
 
\t } 
 

 
\t $pid = $_SERVER['REQUEST_URI']; 
 
\t $pid = trim($pid, "/IncBlog/edit_post.php?pid"); 
 

 
\t $pid = strip_tags($pid); 
 
\t $pid = stripslashes($pid); 
 
\t $pid = mysqli_real_escape_string($db, $pid); 
 
\t //echo "$pid"; 
 

 
\t if ($pid == "") { 
 
\t \t header("Location: ../Nav/life.php"); 
 
\t } 
 

 
\t if (isset($_POST['update'])) { 
 
\t \t $title = strip_tags($_POST['title']); 
 
\t \t $content = strip_tags($_POST['content']); 
 
\t \t $img = strip_tags($_POST['image']); 
 

 
\t \t $title = mysqli_real_escape_string($db, $title); 
 
\t \t $content = mysqli_real_escape_string($db, $content); 
 
\t \t $img = mysqli_real_escape_string($db, $img); 
 

 
\t \t $date = date("l jS \of F Y h:i:s A"); 
 

 
\t \t $sql = "UPDATE posts SET title='$title', content='$content', img='$img', date='$date' WHERE id=$pid"; 
 

 
\t \t if ($title == "" || $content == "") { 
 
\t \t \t echo "The database is hungry you can't feed it nothing!"; 
 
\t \t \t return; 
 
\t \t } 
 

 
\t \t mysqli_query($db, $sql); 
 

 
\t \t header("Location: ../Nav/life.php"); 
 
\t } 
 
?> 
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
\t <title>Blog - Post</title> 
 
</head> 
 
<body> 
 
\t \t <?php 
 
\t \t \t $sql_get = "SELECT * FROM posts WHERE id=$pid LIMIT 1"; 
 
\t \t \t $res = mysqli_query($db, $sql_get); 
 

 
\t \t \t if (mysqli_num_rows($res) > 0) { 
 
\t \t \t \t while ($row = mysqli_fetch_assoc($res)) { 
 
\t \t \t \t \t $title = $row['title']; 
 
\t \t \t \t \t $content = $row['content']; 
 
\t \t \t \t \t $img = $row['image']; 
 

 
\t \t \t \t \t echo "<form action='edit_post.php?pid=$pid' method='post' enctype='multipart/form-data'>"; 
 
\t \t \t \t \t echo " \t <input placeholder='Title' type='text' name='title' value='$title' autofocus size='48'><br /><br />"; 
 
\t \t \t \t \t echo " \t <input placeholder='Image' type='text' name='image' value='$img' autofocus size='48'><br /><br />"; 
 
\t \t \t \t \t echo " \t <textarea placeholder='Content' name='content' rows='40' cols='40'>$content</textarea><br />"; 
 
\t \t \t \t } 
 
\t \t \t } 
 
\t \t ?> 
 

 
\t \t <input type="submit" name="update" value="Update"> 
 
\t </form> 
 
</body> 
 
</html>

+0

あなたはPHPとクエリを介してエラーをチェックする必要があります、あなたはそれをやっていません。 IDと他の変数をvar_dumpしてください。 –

+0

私はすでにIDが1でPIDが1で更新されていますが何も起こりません。 –

+0

編集中のタイトルからRESOLVEDを削除しました。以下に掲示された回答が解決したら、それを受け入れます。誰もいない場合は、あなた自身の答えを投稿することができます。回答を受け入れると、自動的に質問が解決されたことがシステムに伝えられます。それ以上の行動は必要ありません。 –

答えて

0

列を設定し、列の値を設定する必要があります。代わりに

$date = date('Y-m-d H:i:s', strtotime()); 

$sql = 'UPDATE posts SET title='".$title."', content='".$content."', img='".$img."', date='".$date."' WHERE id='".$pid."'"; 
+0

これは残念なことにどちらもうまくいきませんでした –

0
$date = date("l jS \of F Y h:i:s A"); 

使用することは、私は非常に小さなプログラマの失明、それを考え出したが、ちょっと私たちは皆、それを得ます。

それが言うライン66 echo "<form action='edit_post.php?pid$pid' method='post' enctype='multipart/form-data'>";
は、私はちょうど「=」私はそこにいたことを削除するのに必要な「?$ PIDのpid」。

+0

Nopeはどちらもうまく動作せず、どちらの日付も動作します。それは私の問題ではない、問題は私が変更を適用しない投稿を更新するために更新をクリックするときである。 –

0

[OK]を上記ラインの

UPDATE posts SET (title, content, img, date) VALUES ($title, $content, $img, $date) WHERE id = $pid; 
関連する問題