2016-04-10 12 views
0

私がここでやろうとしているのは元のコメントを更新できることです。しかし私のコードは今のように見えますが、新しい行IDを持つ新しいコンテンツを追加し続けるだけです。同じ行IDの元のコンテンツフォームを削除し、それを新しいコンテンツで更新するにはどうすればよいですか?一見mysqlデータベースに最後に挿入されたデータを編集するには?

<?php 
require 'classes/Database.php'; 
$database = new Database; 
$post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING); 

if(isset($post['submit'])){ 
    $title = $post['title']; 
    $body = $post['body']; 

    $database->query('INSERT INTO posts (title, body) VALUES(:title, :body)'); 
    $database->bind(':title', $title); 
    $database->bind(':body', $body); 
    $database->execute(); 
    if($database->lastInsertId()){ 
     echo '<p>Post Added!</p>'; 
    } 
} 
if(isset($post['submit'])){ 
     $id = $database->lastInsertId(); 
     $title = $post['title']; 
     $body = $post['body']; 
     $database->query('UPDATE posts SET title = :title, body = :body WHERE id = :id'); 
     $database->bind(':title', $title); 
     $database->bind(':body', $body); 
     $database->bind(':id', $id); 
     $database->execute(); 
     header('location:index.php'); 
} 


if(isset($post['delete'])){ 
    $delete_id = $_POST['delete_id']; 
    $database->query('DELETE FROM posts WHERE id = :id'); 
    $database->bind(':id', $delete_id); 
    $database->execute(); 
} 


$database->query('SELECT * FROM posts'); 
$rows = $database->resultset(); 
?> 
<h1>Add Post</h1> 
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>"> 
    <label>Post ID</label><br /> 
    <input type="text" name="id" placeholder="Specify ID" /><br /><br /> 
    <label>Post Title</label><br /> 
    <input type="text" name="title" placeholder="Add a Title..." /><br /><br 
/> 
<label>Post Body</label><br /> 
<textarea name="body"></textarea><br /><br /> 
<input type="submit" name="submit" value="Submit" /> 

<h1>Posts</h1> 
    <div> 
    <?php foreach($rows as $row) : ?> 
    <div> 
    <h3><?php echo $row['title']; ?></h3> 
    <p><?php echo $row['body']; ?></p> 
    <br /> 
    <form method="post" action="<?php $_SERVER['PHP_SELF']; ?>"> 
     <input type="hidden" name="delete_id" value="<?php echo $row['id']; 
    ?>"> 
     <input type="submit" name="delete" value="Delete" /> 
     </form> 
    </div> 
    <?php endforeach; ?> 
    </div> 
+0

わかりません。何を試しましたか?あなたのためにプロジェクトを完成させるように私たちに求めていないことを祈っています。 –

答えて

-1

挿入後に値lastInsertIdを使用する必要があります。例えば

if(isset($post['submit'])){ 
    $title = $post['title']; 
    $body = $post['body']; 

    $database->query('INSERT INTO posts (title, body) VALUES(:title, :body)'); 
    $database->bind(':title', $title); 
    $database->bind(':body', $body); 
    $database->execute(); 
    $lastId = $database->lastInsertId(); 
    if($lastId){ 
     echo '<p>Post Added!</p>'; 
    } 
} 

、その後:

... 
$database->bind(':id', $lastId); 
+0

なぜ誰かがdownvoteを設定しましたか?コメントはありますか? –

0

あなたの場合とのelseifを同じ条件、ISSETを($ポスト[ '提出'])持っているので、あなたがUPDATEになったことがないているように見えます。あなたのコードに他に何が入っているのかわかりませんが、これが他のロジックを使って編集されているかどうかを判断する必要があります。

+0

ちょっとバディ私はすべてのコードを追加してくれますか?ありがとう。 – mrRay

関連する問題