日付を年月でグルーピングして集計

【日付列(datetime型)を年月日ではなく年月ごとに集計したい】

w_sqlstr = "select CONVERT(varchar(7), 出荷DB.出荷日, 111) as 出荷年月,"
w_sqlstr = w_sqlstr & " Sum(出荷DB.出荷数) as 年月別出荷数"
w_sqlstr = w_sqlstr & " from 出荷DB"
w_sqlstr = w_sqlstr & " where 出荷DB.出荷数 > 0"
w_sqlstr = w_sqlstr & " group by CONVERT(varchar(7), 出荷DB.出荷日, 111)"
w_sqlstr = w_sqlstr & " order by CONVERT(varchar(7), 出荷DB.出荷日, 111)"

出荷年月  年月別出荷数
2013/04   10
2013/05   20
2013/06   30


2014/06   30

【日付列(datetime型)を年月日ではなく月ごとに集計したい】
この場合、前年や翌年も集計される

w_sqlstr = "select SUBSTRING(CONVERT(varchar, 出荷DB.出荷日, 111),6,2) as 出荷月,"
w_sqlstr = w_sqlstr & " Sum(出荷DB.出荷数) as 月別出荷数"
w_sqlstr = w_sqlstr & " from 出荷DB"
w_sqlstr = w_sqlstr & " where 出荷DB.出荷数 > 0"
w_sqlstr = w_sqlstr & " group by SUBSTRING(CONVERT(varchar, 出荷DB.出荷日, 111),6,2)"
w_sqlstr = w_sqlstr & " order by SUBSTRING(CONVERT(varchar, 出荷DB.出荷日, 111),6,2)"

出荷月  月別出荷数
04   10
05   20
06   60

xampp環境にCakePHPをインストール

Windows版XAMPP環境にCakePHPをインストール

【1】
まずCakePHPをダウンロードし解凍
http://cakephp.jp/ (2.3.2安定版)
解凍し出来た「cakephp-2.3.2」フォルダの名前を「cakephp」などに変えて以下にコピー
C:\xampp\htdocs\cakephp

【2】
http://localhost/cakephpにアクセスすると以下メッセージ(赤、黄)が表示されたcake01

【3】
C:\xampp\htdocs\cakephp\lib\Cake\Utility\Debugger.phpを開き
以下の赤色で記述した値を適当なもの(なんでもよい)に変更し保存

public static function checkSecurityKeys() {
	if (Configure::read('Security.salt') === 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi') {
		trigger_error(__d('cake_dev', 'Please change the value of \'Security.salt\' in app/Config/core.php to a salt value specific to your application'), E_USER_NOTICE);
	}

	if (Configure::read('Security.cipherSeed') === '76859309657453542496749683645') {
		trigger_error(__d('cake_dev', 'Please change the value of \'Security.cipherSeed\' in app/Config/core.php to a numeric (digits only) seed value specific to your application'), E_USER_NOTICE);
	}
}

【3】
再度アクセスすると上から2つの赤色メッセージが消えます。

【4】
続いて
C:\xampp\htdocs\cakephp\app\Config\database.php.defaultを「database.php」に
名前を変えてから開き
以下の赤色で記述した値を自分のデータベースにあわせて変更し保存後
再度アクセスすると1つ目の黄色メッセージが消えます。
※データベースの設定に関する記述の為、予めデータベースを作成しておく必要があります。

public $default = array(
	'datasource' => 'Database/Mysql',
	'persistent' => false,
	'host' => 'localhost',
	'login' => 'user',
	'password' => 'password',
	'database' => 'database_name',
	'prefix' => '',
	//'encoding' => 'utf8',
);

public $test = array(
	'datasource' => 'Database/Mysql',
	'persistent' => false,
	'host' => 'localhost',
	'login' => 'user',
	'password' => 'password',
	'database' => 'test_database_name',
	'prefix' => '',
	//'encoding' => 'utf8',
);

【5】
続いて
最後の黄色メッセージは「DebugKitがインストールされていません」という内容
メッセージ中の
DebugKit is not installed. It will help you inspect and debug different aspects of your application. You can install it from github
リンク(github)先に飛び以下赤丸をクリックしファイルをダウンロードして解凍
cake02
解凍し出来た「debug_kit-master」フォルダを「DebugKit」にリネームして以下にコピーする
C:\xampp\htdocs\cakephp\app\Plugin\DebugKit

【6】
続いて
C:\xampp\htdocs\cakephp\app\Config\bootstrap.phpを開き71行目辺りの
下記の行をコメントから外し保存

 * CakePlugin::load('DebugKit'); //Loads a single plugin named DebugKit 71行目辺り

【7】
再度アクセスすれば黄色のメッセージは消える。

【8】
続いて
C:\xampp\htdocs\cakephp\app\Controller\AppController.php
を開き下記コードを追加して保存する

class AppController extends Controller {
	public $components = array('DebugKit.Toolbar'); //1行追加する
}

【9】
再度http://localhost/cakephpにアクセスし赤丸のアイコンが表示されれば完了
cake03

 

FTPソフト:多数のファイルをFileZillaでアップロード

WordPressやEC-CUBE等のインストールで
たくさんのファイルをアップロードしたい場合
「FFFTP」で途中エラーになり完了できなかった為
「FileZilla」を使用
ダウンロードは http://filezilla-project.org/ より「Client」の方を選択しインストール

・・・

「FileZilla」を起動
通常は「FFFTP」を使用するので、当座しのぎで
ホスト、ユーザ名、パスワードを入力し「クイック接続」ボタン
remember passwords?のメッセージダイアログが出たので
「Do not remember passwords」を選択しパスワードを記憶しない
wp0329_4
ドラッグ&ドロップでアップロード

 

 

MySQLのデータ移行

MySQLのデータベースを別のサーバに移行する手順

移行対象(移行元)のデータベースを指定後、「エクスポート」のタブを選択
wp0329_1
wp0329_2
「実行」ボタンを押し保存先を指定して保存

次に、移行先のデータベースを選択し
「テキストファイルの位置」にさきほど保存したSQLのファイルを指定
wp0329_3
「実行する」ボタンを押すとインポートが始まる

phpMyAdminのバージョン
移行元:3.5.2.2
移行先:3.3.10.5

大量のテキストデータをMySQLテーブルにインポート

レコード件数が多いデータをMySQLのテーブルにインポートする場合に便利な
mysqlimport (データインポートプログラム)

おおよそ12万件の郵便番号データのインポートが数秒で終了。

kenall.txtというテキストファイルをkenallというテーブルにインポートする場合
インポートするファイルの拡張子を除いた名前のテーブルにインポートされます。
予めkenallという名前でテーブルを作成

<?php
$parm = 'mysqlimport';
$parm .= ' --delete'; // テーブルを空にしてからインポート
$parm .= ' --fields-terminated-by="|" '; // テキストファイル項目区切り記号
$parm .= ' --local';
$parm .= ' --replace';
$parm .= ' --ignore-lines=1';   // 1行目(見出し行など)を読み飛ばす
$parm .= ' --host=localhost --user=root --password=mypassword'; //サーバ、ユーザ名、パスワード
$parm .= ' db_name'; //データベース名
$parm .= ' foldername/kenall.txt'; //テキストファイル保存場所、ファイル名

exec($parm);
?>

文字コードがUTF-8の場合テキストファイルの1行目でエラーが発生したので
強制的に1行目に不要な見出し行を作り
読み飛ばすことでエラーを無視

オプションのパラメータ指定はマニュアルを参照

http://dev.mysql.com/doc/refman/5.1/ja/mysqlimport.html

XAMPPでバーチャルホストの設定

http://localhost/mysite/」へのアクセスを、「http://mysite/」にしたい

アクセス先はC:\xampp\htdocs\mysite
ここを「http://mysite/」でアクセスできるようにします。

httpd.confを参照すると(490行目辺)
Include “conf/extra/httpd-vhosts.conf” の記述があるので
「httpd-vhosts.conf」を編集

①---
##NameVirtualHost *:80 ・・・20行目辺

NameVirtualHost *:80 ・・・非コメントブロックします

②---
「httpd-vhosts.conf」内に下のサンプル記述があるので流用し(# VirtualHost example:の行以降)

##<VirtualHost *:80>
##ServerAdmin postmaster@dummy-host.localhost
##DocumentRoot “C:/xampp/htdocs/dummy-host.localhost”
##ServerName dummy-host.localhost
##ServerAlias www.dummy-host.localhost
##ErrorLog “logs/dummy-host.localhost-error.log”
##CustomLog “logs/dummy-host.localhost-access.log” combined
##</VirtualHost>

これを流用し末尾に以下を追加
<VirtualHost *:80> ・・・このブロックが無いとlocalhostでアクセスが出来なくなったので
DocumentRoot “C:/xampp/htdocs”
ServerName localhost
</VirtualHost>

<VirtualHost *:80> ・・・ daihachi.localhostでアクセスする為の記述
DocumentRoot “C:/xampp/htdocs/mysite”
ServerName daihachi.localhost
</VirtualHost>

③---
hostsファイルを編集( C:\WINDOWS\system32\drivers\etc)
127.0.0.1       localhost
127.0.0.1       daihachi.localhost ・・・記述を追加

XAMPPでドキュメントルートを変更

デフォルトのアクセス先「C:/xampp/htdocs」から、「C:/www」にしたい

httpd.conf(190行目辺)
DocumentRoot “C:/xampp/htdocs”

DocumentRoot “C:/www” ・・・これに変更

ディレクティブを変更(230行目辺)
<Directory “C:/xampp/htdocs”>

<Directory “C:/www”>・・・これに変更

続いてxampp管理画面に「http://~/xampp/」でアクセスするためエイリアスを指定
httpd-xampp.confを下記の様に変更

<Directory “C:/xampp/htdocs/xampp”>
<IfModule php5_module>
<Files “status.php”>
php_admin_flag safe_mode off
</Files>
</IfModule>
AllowOverride AuthConfig
</Directory>
↓・・・変更
Alias /xampp “C:/xampp/htdocs/xampp/”
<Directory “C:/xampp/htdocs/xampp”>
<IfModule php5_module>
<Files “status.php”>
php_admin_flag safe_mode off
</Files>
</IfModule>
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>

※変更後はxamppコントロールパネルの
adminボタンでxampp管理画面へのアクセスは不可になります。

FTPアカウントにフォルダへのアクセス許可を指定していたので下記も実行
・FileZillaを起動
・Edit→Usersの順に選択
・対象ユーザーを選択
・Page窓内のshared foldersを選択
・Shared foldersよりアクセス可能なフォルダを変更