みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHP MySQL で updateができません

はじめまして。Amazon.co.jpなどでよくある
「このレビューは参考になりましたか?」
Yes/No でレビューに対する評価機能をPHPで組みたいのですが、
update set でうまくデータ更新ができず困っております。

以下ソース
【入力画面】
-----------------------------------------------------------
<? while ( $adp = mysql_fetch_array( $result6 ) ) { ?>
<form name="register" action="rev.php" method="post">

//レビュー内容
<?php
$str = nl2br($adp['description']);

echo $description . $str ;
?>
//レビュー内容
このレビューは参考になりましたか?

<input type="radio" name="vote" value="2" checked>参考になった<br>
<input type="radio" name="vote" value="1">参考にならなかった<br><br>


<? echo $adp['add_id'] ?>
<input name="add_id" type="hidden" value="<?= $adp['add_id'] ?>">
<input type="submit" value="- 登録 -">
<input type="reset" value="リセット">
</form>
<? } ?>

【完了画面】
-----------------------------------------------------------
<?
require( '../config.php' );
require( '../lib.php' );

$link = db_connect();
$sql = "update adp set
vote = '" . mysql_real_escape_string( $_POST['vote'] ) . "'
where add_id = '" . mysql_real_escape_string( $_GET['add_id'] ) . "'";

$result = mysql_query( $sql );
echo mysql_error();
//
?>
投票完了
-----------------------------------------------------------
要するに
adpのデータベースのadd_idが同じテーブルの中の
voteの値を1か2に更新したいだけなのですが、

1人で色々と試してもどうしても更新できずに
困っております。

どなたかお分かりの方がいらっしゃいましたら是非
お教えいただけますと幸いです。
足りない情報などございましたらご連絡ください。
補足させていただきます。

すみません、どうかお願いします。

投稿日時 - 2009-03-28 15:27:27

QNo.4833874

すぐに回答ほしいです

質問者が選んだベストアンサー

あれー そうですかー

ちなみに
echo $sql;
で、欲しいSQL文になってるかは確認されてるんですよね??

投稿日時 - 2009-03-28 20:48:15

お礼

早速のお返事ありがとうございます!
申し訳ありません、初心者で知りませんでした・・
「echo $sql;」でSQL文を確認できるのですね!

やってみましたら
update adp set vote = '20' where add_id = '2'

と表示されました。
(20はデフォルトでデータベースに入っている値です。)

調べてみましたら入力画面でhiddenでvoteの値を
渡すよう設定しておりました。

大変初歩的なミスですみません。
解決しまして本当に感謝しております。
お忙しい中、いろいろと誠にありがとうございました。

投稿日時 - 2009-03-28 22:10:13

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

mysql_real_escape_string( $_GET['add_id'] ) . "'";

mysql_real_escape_string( $_POST['add_id'] ) . "'";
じゃないですか?

add_idが取れてないから更新出来てないのでは…と思いますが

投稿日時 - 2009-03-28 19:37:53

補足

ご連絡いただきましてありがとうございます。

ご指摘ありがとうございます。
しかし、GETをPOSTに変更してもやはり
更新できませんでした。

投稿日時 - 2009-03-28 20:33:38

ANo.1

>1人で色々と試してもどうしても更新できずに

更新できずに、どんなエラーが出るのですか?

投稿日時 - 2009-03-28 17:44:38

補足

早速ご連絡いただきましてありがとうございます!
完了ページは正常に表示されるのです。
しかし、データベースを見ると更新されていません。

ちなみに、
echo mysql_error();
としておりますが、何も表示されません。

他にもございましたら補足させていただきます。
どうぞよろしくお願いいたします。

投稿日時 - 2009-03-28 19:06:35

あなたにオススメの質問