dポイントプレゼントキャンペーン実施中!

データベースに「id」「name」「age」「comment」があります。
ウェブ上でデータベースを呼び出し一覧表示させ、各行に更新と削除ボタンを設けています。
そしてその下に新規追加出来るよう入力欄とボタンを設けています。

データベースの呼び出し、更新、新規入力はうまくいくのですが「削除」のみうまくいきません。
以下のPHPですがどこがおかしいでしょうか?
もしエスパー回答を求める質問になっていましたら必要な情報書きますので教えて下さい。
宜しくお願いいたします。


<?php
$pdo = new PDO('mysql:dbname=dbname', 'root', 'pass');

switch ($_SERVER['REQUEST_METHOD']) {
case 'GET':
$st = $pdo->query("SELECT * FROM meibo");
echo json_encode($st->fetchAll(PDO::FETCH_ASSOC));
break;

case 'POST':
$in = json_decode(file_get_contents('php://input'), true);
if (isset($in['id'])) {
$st = $pdo->prepare("UPDATE meibo SET name=:name,age=:age,comment=:comment WHERE id=:id");
} else {
$st = $pdo->prepare("INSERT INTO meibo(name,age,comment) VALUES(:name,:age,:comment)");
}
$st->execute($in);
break;

case 'DELETE':
$st = $pdo->prepare("DELETE FROM meibo WHERE id=?");
$st->execute($_POST['id']);
break;
}

質問者からの補足コメント

  • いろいろ試してみましたが全く消えません。
    もう少し詳しく教えて頂ければ幸いです。
    よろしくお願いいたします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2016/05/17 00:04
  • いろいろ試してみましたが全く消えません。
    もう少し詳しく教えて頂ければ幸いです。
    よろしくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2016/05/17 00:05

A 回答 (3件)

>いろいろ試してみましたが全く消えません。



では

>各行に更新と削除ボタンを設けています。

をどうやって指定しているか書いてください
また、「$in['id']」はどこからやってきているのですか?
    • good
    • 0
この回答へのお礼

「分からない事が何か」分からない状態になってしまいました(^^;
結局、削除専用のphpを作りページ移動させて処理することにしました。
1アクション増えましたが意図する動きが出来たので良しとします。
ご丁寧にお答えいただきありがとうございました。
また宜しくお願いいたします。

お礼日時:2016/05/17 16:04

$_SERVER['REQUEST_METHOD']の値が


GETかPOST以外にならないとDELETEに
ならないですね

DELETEがどの変数に入っているか
よく検証してみてください
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます。
1個1個地道に精査し原因追究してみます。
また報告いたします。

お礼日時:2016/05/15 22:06

1. case 'DELETE': に到達しているか確認してください。


2. PDOStatement::execute は成功した場合に TRUE を、失敗した場合に FALSE を返します。値を確認してください。http://php.net/manual/ja/pdostatement.execute.php
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます。
1個1個地道に精査し原因追究してみます。
また報告いたします。

お礼日時:2016/05/15 21:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!