このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/db/1274791771/572
#  sqlite3です、PHPを使ってやりたいんですが、 
#    
#  データにある、ある項目が引用されたとき、  
#  そのデータにあるcntというカラムにカウンターみたいなのを付けたいんですが  
#  何か良い方法はありますか?  
#  http://ime.nu/oku.edu.mie-u.ac.jp/~okumura/php/counter-sqlite.php  
#  それっぽいのがあったんですけど 複数のcnt[カラム]ごとに取得したいんですよね  
#   

カウンタ付き参照(P) :-
        P =.. [_テーブル名,_id|L],
        参照位置ならび(2,L,_条件項位置ならび,_変数位置ならび),
        call(P),
        条件項カウンタの更新(_テーブル名,_id,_条件項位置ならび),
        変数項カウンタの更新(_テーブル名,_id,_変数位置ならび).

参照位置ならび(_,[],[],[]) :- !.
参照位置ならび(N,[A|R1],[N|R2],R3) :-
        \+(var(A)),
        N2 is N + 1,
        参照位置ならび(N2,R1,R2,R3).
参照位置ならび(N,[V|R1],R2,[N|R3]) :-
        var(V),
        N2 is N + 1,
        参照位置ならび(N2,R1,R2,R3).

条件項カウンタの更新(_テーブル名,_id,_条件項位置ならび) :-
        append(_,[_位置|R],_条件項位置ならび),
        条件項カウンタの更新(_テーブル名,_id,_位置),
        R = [].

条件項カウンタの更新(_テーブル名,_id,_位置) :-
        retract(条件項カウンタ(_テーブル名,_id,_位置,N)),
        N2 is N + 1,
        asserta(条件項カウンタ(_テーブル名,_id,_位置,N2)).
条件項カウンタの更新(_テーブル名,_id,_位置) :-
        \+(条件項カウンタ(_テーブル名,_id,_位置,_)),
        asserta(条件項カウンタ(_テーブル名,_id,_位置,1)).

変数項カウンタの更新(_テーブル名,_id,_位置) :-
        retract(変数による参照項カウンタ(_テーブル名,_id,_位置,N)),
        N2 is N + 1,
        asserta(変数による参照項カウンタ(_テーブル名,_id,_位置,N2)).
変数項カウンタの更新(_テーブル名,_id,_位置) :-
        \+(変数項カウンタ(_テーブル名,_id,_位置,_)),
        asserta(変数による参照項カウンタ(_テーブル名,_id,_位置,1)).