[PHP-users 27487] 重複を許さない方法

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PHP-users 27487] 重複を許さない方法

ishiity
よろしくお願いします。
PHPとMYSQL(ver4.0)を使用しています。
IEからMYSQLへデータを送信するとき。
同じ人が同じ日に複数回データを送信できないようにしたい
のですが、どのようにすればよいのでしょうか。
1日単位で考えています。
同じ日に2回以上データを入力しようとしたら
1回目に入力した人のIDと日付をもとに拒否する
方法はありますか。

あるいは他の方法があれば教えていただけませんか。
よろしくお願いします。
(石井)

_______________________________________________
PHP-users mailing list  [hidden email]
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PHP-users 27488] Re: 重複を許さない方法

Yamaya Naoki
山谷と申します

> 同じ人が同じ日に複数回データを送信できないようにしたい
> のですが、どのようにすればよいのでしょうか。
> 1日単位で考えています。
> 同じ日に2回以上データを入力しようとしたら
> 1回目に入力した人のIDと日付をもとに拒否する
> 方法はありますか。
一般的なdbを使って、同じ人というのが、ユーザーIDが同
一の人と考えるなら、ユーザーIDと入力日付をフィールドに
追加して、ユーザーIDとフィールドをユニーク制約をすれば
、dbへINSERTする時にエラーとなって登録できませんが、d
bは使いませんか?

dbを使わないならPHP上に配列で、ユーザーIDと入力日
付を格納してチェックするしかないのかな?
-以上-

--------------------------------------
Yahoo! Mail - supported by 10million people
http://pr.mail.yahoo.co.jp/10m/

_______________________________________________
PHP-users mailing list  [hidden email]
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PHP-users 27489] Re: 重複を許さない方法

Atsushi Kojo
In reply to this post by ishiity
古城です。お世話になります。
登録や更新を行う前にSELECT文で
検索すればいいんじゃないでしょうか?

--------------------------------
Atsushi Kojo
E-mail: [hidden email]
URL: http://www.artsnet.jp/

_______________________________________________
PHP-users mailing list  [hidden email]
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PHP-users 27491] Re: 重複を許さない方法

h j
こんばんは。普段はROMのhjと申します。
以前 php + mysql で俳句の投稿サイトをつくり、同一投稿者は
一日一句の制限をしたことがありました。


//2句以上チェック
$db_data = mysql_query("SELECT * FROM <投稿テーブル> where <日付カラム> =
'$today' AND <投稿者名カラム> = '$_SESSION[投稿者名]'");
  $check = mysql_fetch_row($db_data);
        if (!$check == null){
       print "投稿は一日一件";
          mysql_close処理してexit
        }

//$today内容
$today = getdate( );
$today = $today[year].'/'.$today[mon].'/'.$today[mday];


参考になりますでしょうか。

_________________________________________________________________
無料でメールボックス250MBの 「MSN Hotmail」 http://www.hotmail.com/ いますぐ
サインアップ

_______________________________________________
PHP-users mailing list  [hidden email]
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PHP-users 27493] Re: 重複を許さない方法

陸奥
In reply to this post by ishiity
陸奥と申します。
投稿データテーブルの日付カラムとサーバ時間との比較ではなく、
別の切り口で考えてみました。
穴があるかもしれませんが・・・。

ひと月の投稿履歴テーブルを作成(UID+年+月+31日分=34カラム)
日の値が0ならその日は未投稿、1なら投稿済み
ユーザとサーバのやり取り------------------------------------
ユーザ「UID:XXXXでデータベースに接続します」

投稿時、月の値が前月のままであれば当月に変更し日の値は全部0
サーバ「UID:XXXXさん。当月の利用はありません」

投稿時、月の値が当月であれば値が1の日を返し、
本日投稿可能かも知らせる。
サーバ「1日と2日に投稿されています。本日投稿可能です」

ユーザ「UID:XXXXですが、本日はこの内容でお願いします」
この時点では本日の値が0なので。
サーバ「本日投稿可能です。投稿を受け付けました」

ユーザ「UID:XXXXですが、本日はこの内容でお願いします」
本日の値は1に変更されているので。
サーバ「本日投稿していますが?」

以下参考まで-------------------------------------------------
ユーザ「UID:XXXXですが、1日の投稿だけ削除してください」
1日の値が1であることを確認して。
サーバ「確かに投稿されていますね。削除完了しました」

ユーザ「UID:XXXXですが、2日の投稿を訂正したいのですが」
サーバ「本日分のみ訂正可能です」

日付パラメータに不正な値が代入されていた場合。
ユーザ「このパラメータに日付を入れれば投稿日の指定が出来そうですが」
サーバ「日付スタンプはこちらで登録直前に押します」
サーバ「勝手に記入しないでください。それでは。」
_______________________________________________
PHP-users mailing list  [hidden email]
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3
Loading...