MySQLでテーブルを作成

MySQLを使ったブログシステムをPHPで作っています。
テーブルを作成するときは、phpMyAdminを使って手作りをしているのですが、面倒です。
PHPで一気に作る方法をまとめました。 (さらに…)

WassUpで人気記事を取得するSQL

WordPressにはWassUpという、アクセス状況を調べることのできるプラグインがあります。
WassUpはアクセスのログをMySQLのテーブルに保存しているのでSQLを使えば簡単にアクセス状況を集計をすることができます。

そこで「30日間にアクセスの多かった記事」を取得するSQLを考えてみました。

SELECT post_title, count( urlrequested ) AS ct
FROM wp_wassup
JOIN wp_posts ON replace( urlrequested, "/wp/archives/", "" ) = wp_posts.id
WHERE instr( urlrequested, "archives" ) >0
AND instr( urlrequested, "category" ) =0
AND UNIX_TIMESTAMP( ) - timestamp <30 *24 *60 *60
GROUP BY urlrequested
ORDER BY count( urlrequested ) DESC
LIMIT 0 , 10

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のordが返す値

MySQLで文字コードを得るにはASCII()という関数を使います。
マルチバイト文字(日本語の全角文字など)についてはord()を使います。
しかし返す値がよく分かりません。

リファレンスには次の通り書かれています。 (さらに…)

VBAやJavaScriptなどの置換関数の引数の違い

VBAやJavaScriptなどには文字列を置換するための関数があります。
「これはペンです」の「ペン」を「鉛筆」に置換して「これは鉛筆です」に変換するようなケースで使います。

言語によって微妙に書き方が異なるので注意を要します。
私がよく使う、Excel、VBA、JavaScript、PHP、MySQLについて、比較してみました。

言語 関数
Excel SUBSTITUTE(文字列,置換前,置換後)
VBA Replace(文字列,置換前,置換後)
JavaScript 文字列.replace(置換前,置換後)※正規表現が使える。
PHP str_replace(置換前,置換後,文字列)または
preg_replace(置換前,置換後,文字列)※正規表現が使える。
MySQL REPLACE(文字列,置換前,置換後)

言葉の意味は次の通りです。
文字列「これはペンです」置換前「ペン」置換後「鉛筆」に置換

MySQLで文字を一括置換する方法

MySQLで特定の文字列を一括置換する方法は次の通りです。

UPDATE テーブル SET カラム = REPLACE(カラム,置換前文字列,置換後文字列);

例えば、テーブル「予定表」のカラム「場所」の「○○教室」を「○○会議室」に一括置換したい場合には次のようにします。

UPDATE 予定表 SET 場所 = REPLACE(場所,"教室","会議室");

(さらに…)

ロリポップのサーバ移設で文字化け

このブログはレンタルサーバのロリポップを使っています。
今日、サーバの移設があったのですが、自分で作成したページに文字化けが発生しました。
PHP5とMySQL5を使用しているページが文字化けします。

その対処方法は「mysql_select_db」の後に「mysql_set_charset(“utf8”)」を挿入すること。

mysql_select_db(データベース名);
mysql_set_charset("utf8");

私の場合はこれで文字化けが解消されました。

MySQL5に移行

WordPressは2.9からは、MySQLは4.1.2以上でないと使えません。MySQL5ならばOKです。
ところが私の使っているMySQLは4.1.2未満だったのでアップグレードできませんでした。
MySQL4から5にするためにはデータベースの移行が必要なので躊躇していました。またPHPとの相性の問題もあるかもしれず、エラーが出たら面倒だと思っていました。 (さらに…)

MySQLのテーブルを削除する

XOOPSという仕組みを利用していたのですが、利用者が皆無なので、削除することにしました。
XOOPSはMySQLのテーブルをたくさん使います。私の環境では47個もありました。
一つずつ削除するのは面倒なので困っていたのですが、SQL文を次のように書いたところ、一気に消すことができました。

DROP TABLE table1,table2,table3

タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報