ECサイトで前回購入した情報がカートに残ってる。。。


検索結果が前回と変わってない。。。


などはキャッシュが残っていて表示されている可能性があります。


キャッシュが残るのは主にブラウザ、プロキシサーバですが、制御はHTMLかHTTPヘッダで行います。


<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<meta http-equiv="Cache-Control" content="no-cache" />

↑の方法ですと、ブラウザがmetaタグを解釈しないブラウザでしたら作動しません。


ですので、HTTPヘッダーにも書いておくといいです。



Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "no-cache");
Response.Expires = -1;


↑C#の場合


header("Content-Type:text/html;charset=Shift_JIS");
header("Expires: -1");
header("Last-Modified: ". gmdate("D, d M Y H:i:s")
. " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");


↑PHPの場合

もっと詳しくHTTPヘッダを知りたい場合は、ここら辺のキーワードで検索すると、すぐに見つかります。



業務系のアプリ等を作ってる人はCSVという言葉に聞き覚えがあるのでわ。。。


Microsoft OfficeのEXCELはデフォルトでCSVを関連付けています。


よって、CSVファイルをダブルクリックするとEXCELが開きます。


ただし、頭に0が付いているコードは数値とみなされてしまいます。


それ以外に20桁近い数値は浮動小数みたいな表記に


日付は時間だけの表記に等々弊害が多発します。


とくに業務系アプリでは商品のコードを0埋め4桁とかで表したりするので頭の0がなくなると、別の商品としてみなされてしまいます。


では頭の0を残しつつCSVを開くにはどうすればいいのか。。。


ということで、方法はデータのインポートです。


データのインポートは各カラムのデータ型を指定ができるので、文字列として読み込めば頭の0が残ります。


方法(EXCEL2007の場合):


リボンのデータを選択→「外部データの取り込み」の「テキストファイル」を選択→取りこむCSVファイルを選択し、「インポート」ボタンをクリックします。


→「カンマやタブなどの・・・」を選択し「次へ」をクリックします。

(ヘッダーがある場合は取り込み開始行を2に、文字コードがShift-JIS以外なら文字コードも指定してください。特にLINUX系からダウンロードしたCSVはEUCの可能性もあります。)


→カンマ区切りのCSVの場合は「カンマ」を選択し「次へ」をクリック


→「データのプレビュー」内で、文字列として扱いれつの「G/標準」をクリックし、反転させます。

(いっきに全列を変更したい場合は一番の列を選択し、Shiftボタンを押しながら一番右の列をクリックします。)


→「列のデータ形式」の「文字列」を選択します。


→「データのプレビュー」内の選択した列が「文字列」になった事を確認し「完了」をクリックします。


→「新規のワークシート」を選択し、OKを押すと取り込みが完了です。


どうでしょうか?頭の0を残せたままCSVを開けたでしょうか?


MySQLに対するツールが揃っていない時に、SELECT文の結果をファイルとして欲しい方法を紹介します。


select * from customers where email='' 
INTO OUTFILE '/temp/test/list.csv' 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'



上のSQLを発行すれば、/temp/test/にlist.csvが出力されます。


(customersはココに記載するために作った、実際には何にもりようしていないテーブルです。)


list.csvがあった場合に既にファイルが存在しますというエラーがでてしまいました。


また、SQLを実行するプロセスが/temp/testに書き込み権限がないとエラーが発生します。


あとは、サーバ上で作業するなり、FTPでダウンロードするなりして使えます。