私は個人的なウェブサイトを作っていますが、手動で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> <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>
あなたはPHPとクエリを介してエラーをチェックする必要があります、あなたはそれをやっていません。 IDと他の変数をvar_dumpしてください。 –
私はすでにIDが1でPIDが1で更新されていますが何も起こりません。 –
編集中のタイトルからRESOLVEDを削除しました。以下に掲示された回答が解決したら、それを受け入れます。誰もいない場合は、あなた自身の答えを投稿することができます。回答を受け入れると、自動的に質問が解決されたことがシステムに伝えられます。それ以上の行動は必要ありません。 –