WordPressにはWassUpという、アクセス状況を調べることのできるプラグインがあります。
WassUpはアクセスのログをMySQLのテーブルに保存しているのでSQLを使えば簡単にアクセス状況を集計をすることができます。
そこで「30日間にアクセスの多かった記事」を取得するSQLを考えてみました。
URLを「/wp/archives/3815」としている場合の例です。「wp」はWordPressのフォルダです。
ログは「wp_wassup」テーブルに保存されています。
記事は「wp_posts」テーブルに保存されているので、結合して記事のタイトルを取得します。
「30 *24 *60 *60」の「30」が日数です。
次が実行結果です。
| post_title |
ct |
| ワンピースARカードダスのレアカード |
7226 |
| ワンピースARカードダス一覧 第3弾 |
6166 |
| ワンピースARカードダス一覧 第2弾 |
4436 |
| ワンピースARカードダス一覧 |
4196 |
| 伝説ポケモンのARマーカー |
2243 |
| GoogleカレンダーにCSVファイルから予定をインポートする方法 |
1936 |
| ワンピースARカードダス、40枚中34枚を発見 |
1668 |
| 「ショットノート」を自作 |
1633 |
| ポケモン立体図鑑ARマーカーリスト |
1310 |
| 番号と日付がセットできる自作SHOT NOTE |
1241 |
ワンピースとポケモンばかりだ。
MySQLで文字コードを得るにはASCII()という関数を使います。
マルチバイト文字(日本語の全角文字など)についてはord()を使います。
しかし返す値がよく分かりません。
リファレンスには次の通り書かれています。 続きを読む…
VBAやJavaScriptなどには文字列を置換するための関数があります。
「これはペンです」の「ペン」を「鉛筆」に置換して「これは鉛筆です」に変換するようなケースで使います。
言語によって微妙に書き方が異なるので注意を要します。
私がよく使う、Excel、VBA、JavaScript、PHP、MySQLについて、比較してみました。
| 言語 |
関数 |
| Excel |
SUBSTITUTE(文字列,置換前,置換後) |
| VBA |
Replace(文字列,置換前,置換後) |
| JavaScript |
文字列.replace(置換前,置換後)※正規表現が使える。 |
| PHP |
str_replace(置換前,置換後,文字列)または preg_replace(置換前,置換後,文字列)※正規表現が使える。 |
| MySQL |
REPLACE(文字列,置換前,置換後) |
言葉の意味は次の通りです。
文字列「これはペンです」の置換前「ペン」を置換後「鉛筆」に置換
MySQLで特定の文字列を一括置換する方法は次の通りです。
例えば、テーブル「予定表」のカラム「場所」の「○○教室」を「○○会議室」に一括置換したい場合には次のようにします。
続きを読む…
このブログはレンタルサーバのロリポップを使っています。
今日、サーバの移設があったのですが、自分で作成したページに文字化けが発生しました。
PHP5とMySQL5を使用しているページが文字化けします。
その対処方法は「mysql_select_db」の後に「mysql_set_charset(“utf8″)」を挿入すること。
mysql_select_db(データベース名);
mysql_set_charset("utf8");
私の場合はこれで文字化けが解消されました。
WordPressは2.9からは、MySQLは4.1.2以上でないと使えません。MySQL5ならばOKです。
ところが私の使っているMySQLは4.1.2未満だったのでアップグレードできませんでした。
MySQL4から5にするためにはデータベースの移行が必要なので躊躇していました。またPHPとの相性の問題もあるかもしれず、エラーが出たら面倒だと思っていました。
今般、思い切ってMySQL5に移行しました。
私が使っているレンタルサーバでは、まずMySQL4のデータベースからMySQL5の試用のデータベースにコピーされます。
この間、新旧のデータベースは使えません。つまり、このコピーの間はデータベースを使うウェブページにはエラーが表示されるのです。「只今、メンテナンス中」などという表示をするのが鉄則ですが、面倒なので、放置。
しかし、何時間もかかると思っていた、このコピーはわずか1分ほどで終了。
早速、phpMyAdminで新データベースの中身を覗いてみました。問題なくコピーされているようです。
次に、このブログの接続先データベースを書き換えてみました。そして適当なコメントを入れてみたところ、これも無事、新データベースに反映されました。
その他の自作のウェブページも試してみましたが問題なさそうです。
そこで試用ではなく本番で使用するように設定します。この切替は数秒。旧データベースが削除されます。
今夜は徹夜も覚悟していましたが、あまりに簡単なので拍子抜けしました。
WordPressも無事、2.9.1にアップグレードできました。
WordPress | 日本語 » WordPress 2.9.1 日本語版リリースのお知らせ
XOOPSという仕組みを利用していたのですが、利用者が皆無なので、削除することにしました。
XOOPSはMySQLのテーブルをたくさん使います。私の環境では47個もありました。
一つずつ削除するのは面倒なので困っていたのですが、SQL文を次のように書いたところ、一気に消すことができました。
最近のコメント