(PHP関連)データベースのあるカラムに456という値があるとします。またレコードごとに異なるstというカラムもあり引数でeee.php?st=AAABBBのようにアクセスすると、そのレコードのみ456が1234にUPDATEされるとします。


しかしeee.phpにはアップデート機能しか備わっておらず引数stが同じ値でもアクセスするたびにアップデートされます。そこで一度1234にアップデートされたレコードはもうアップデートせず何かのメッセージを出したいと考えています。

よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/12/21 13:01:33
  • 終了:--

回答(3件)

id:cooper0524 No.1

cooper0524回答回数296ベストアンサー獲得回数42005/12/21 13:32:00

そのテーブルにアップデートフラグのフィールドを持つことはできますか?できるとしたら、

updateの条件に(where updateフラグ != 1)とでもしておき、

update時にフラグに1を立てておけば、次回はフラグが立っていない場合のみ更新するのではないでしょうか?

また、アップデートされていないかは更新件数が0件だったときの判断でできるはずです。

id:esecua

SQLではなくPHPでは可能ですか?

2005/12/21 14:06:25
id:cooper0524 No.2

cooper0524回答回数296ベストアンサー獲得回数42005/12/21 13:45:54

先ほど回答した者です。

実際のソースとしては(環境がないのでイメージですが)


eee.php

<?

$st =$_GET[”st”];


$sql = ”select * from table where st=$st and update_flg = 1”;

検索SQL実行


if(検索結果が0件){

 $sql = ”update table set aaa = 1234,update_flg = 1 where st=$st and update_flg != 1”

 更新SQL実行

}else{

 print ”既に更新されています”;

}


?>


といった感じではないでしょうか。

id:esecua

私が書いた簡単なソースは以下のとおりです。

<html>

<head><title>データの更新</title></head>

<body>

require_once(’dbinfo.php’);

$st = $_GET[’st’];

if (!$conn = mysql_connect($dbhost, $dbuser, $dbpassword)){

die(”Error”);

}

mysql_select_db(”securitycenter”, $conn);

$sql = ”update users set up = ’1234’ where st = ’$st’”;

mysql_query($sql, $conn)

or die(”Error”);

print(”Complated”);

?>

</body>

</html>

これに連続投稿防止機能を取り付けたいのですが、何とかならないでしょうか?

初心者過ぎてすいません。

2005/12/21 14:18:52
id:yuki_n No.3

yuki_n回答回数24ベストアンサー獲得回数02005/12/21 15:21:17

http://www.hatena.ne.jp/1135137693#

人力検索はてな - (PHP関連)データベースのあるカラムに456という値があるとします。またレコードごとに異なるstというカラムもあり引数でeee.php?st=AAABBBのようにアクセスすると、そのレ..

URLはダミー

違っていたらすみません。

(環境が無いので、試せていません。)


$sql = ”update users set up = ’1234’ where st = ’$st’”;

この部分を

$sql = ”update users set up = ’1234’ where st = ’$st’and up != ’1234’”;

こんな感じにすれば希望に適うかな?


もしかしたら、DBによって構文が違うかも?

【!=】 ではなく 【<>】 とか 【not】 を使うとか?

その辺は、SQLのサイトでも調べてみてください。


とりあえず、検索条件から【up】に【1234】が入っているのを除ければよいと判断しましたが。。如何でしょうか?

http://www.atmarkit.co.jp/fnetwork/rensai/sql01/sql1.html

SQLの基礎「SELECT」文を覚えよう

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sak3sql.htm

SQL プログラミング言語資料 - SAK Streets

id:esecua

すいません。満足のいく回答が得られなかったためキャンセルいたします。

2005/12/21 22:53:35

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません