アプリ版:「スタンプのみでお礼する」機能のリリースについて

php と mysqlで作ろうと考えてます。

・内容
php の処理をした結果 同じ名前があった場合
その名前をカウントアップさせたいです。

DBのテーブル
name|counter
田中|1
佐藤|2
鈴木|5


phpの処理をした結果 「田中」 が重複していたい場合のDBの結果内容

name|counter
田中|2
佐藤|2
鈴木|5

参考サイトがございましたらアドバイスいただければ幸いです。
よろしくお願い致します。

A 回答 (2件)

SQL文 一行で済みますよ。



$query = "update [テーブル名] set counter=counter+1 where name='田中'";

多分、こんな感じ。
    • good
    • 1
この回答へのお礼

これだけで済むとは。。。試したら意図した結果になりました。

アドバイスありがとうございました。

お礼日時:2013/05/23 17:36

まず、nameにユニーク属性をつけておきます(プライマリでも可)


なお、counterのデフォルト値は1にしておきます

create table users(name varchar(20) not null unique key,counter int default 1);
insert into users values('田中',1),('佐藤',2),('鈴木',5);

以下、すでにデータがあればcounterがインクリメントされ、なければ追加されます

INSERT INTO users(name) VALUES ('田中') ON DUPLICATE KEY UPDATE counter=counter+1;
INSERT INTO users(name) VALUES ('吉田') ON DUPLICATE KEY UPDATE counter=counter+1;

参考URL:http://dev.mysql.com/doc/refman/5.1/ja/insert-on …
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
こういうやり方もあるんですね。

参考になりました。

お礼日時:2013/05/23 17:36

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