#!/bin/sh myname=`basename $0` mydir=`dirname $0` cd $mydir # scriptと同じディレクトリに移動 DB=db/val.sq3 . $mydir/cgilib2-sh # 使用DBファイルを db/val.sq3 に if [ -n "$1" ]; then # $1 はURL直打ちできるので数字でない場合も考慮する r=${1%%[!0-9]*}; r=${r##*[!0-9]} # $1 から数字以外を除去 # ★A★ 与えられた rowid でもう一度 rowid を取り直してみる rowid=`query "SELECT rowid FROM v WHERE rowid=$1;"` fi title=${rowid:+"Edit $rowid"} # $rowid は "" か整数になる title=${title:-"List"} # $rowid が空なら "List" に m4 -D_TITLE_="$title" -D_ACTION_="$myname" editv-head.m4.html # 【1】 if [ -z "$rowid" ]; then # 有効なrowid指定がなければ新規入力 echo "
valの新規入力:
" #★B★ val=`getpar val | sed "s/'/''/g"` # SQLクォートする rid=`getpar rowid` # hiddenで入力された場合 rid=${rid%%[!0-9]*}; rid=${rid##*[!0-9]} # 数字以外を除去 case `getpar action` in # ★C★ラジオボタン action の値で処理切り替え "") # 新規入力 [ -n "$val" ] && # $val が空でなければINSERT query "INSERT INTO v VALUES('$val');" && echo "New record '`echo \"$val\"`' inserted." ;; edit) [ -n "$rid" ] && # hidden指定のrowidレコードを更新 query "REPLACE INTO v(rowid, val) VALUES($rid, '$val');" && echo "
Update rowid($rid)=`escape \"$val\"`.
" ;; rm) [ -n "$rid" ] && # hidden指定のrowidレコードを削除 if [ x"`getpar rm`" = x"yes" ]; then query "DELETE FROM v WHERE rowid=$rid;" && echo "Delete rowid($rid).
" fi ;; esac echo "既存レコード一覧(クリックして編集):
"
# ★D★ .mode html でのSELECT結果1個分は以下のようになる
query<<-EOF | #