Joomla!,Wordpressでサイトを構築するためのヒント

Wordpressの記事の中で独自のmysqlテーブルを操作する

公開日| 2011年02月18日 | 2 のコメントがあります。

WordPressの記事の中で、mysqlのテーブル操作(検索、更新など)を行うには、どうしたら良いでしょうか?

基本的にWordpressの各テーブルは、Wordpressで用意されているAPI(Wordpressでは、タグと呼ばれているphp関数群)でほとんどの情報を操作することができます。
しかし、独自で作成したmysqlのテーブルはどうでしょう。

それを操作するためのタグ(API)も用意されていますので、今回は、それについて取り上げてみます。

準備

Wordpressで、独自のテーブルを記事の中で操作するには、記事の中でphpが動作するようなプラグインをインストールする必要があります。
以下の記事を参考にプラグインをインストールしましょう。

phpを記事の中で動作させるためのプラグイン記事;WordPressの記事の中でPHPを動作させる

また、その動作確認のためのmysqlのテーブルも用意しておきましょう。
ここでは、mysqlのテーブルは、テスト用として以下のようなものを用意しました。

※以下の例では、SSHなどでサーバーにログインできる場合の例です。
SSHでのログインができないような環境では、phpAdminが使えると思いますので、そこでログインし、SQLを実行すれば同じことができます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
> mysql -uxxx -pyyy -Dzzz
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.36-community MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE TABLE `test_run_post` (
    -> `strkey` varchar(32) ,
    -> `numkey` int         ,
    -> PRIMARY KEY (`strkey`) );
Query OK, 0 rows affected (0.11 sec)

mysql>
1 行目 : -uxxx : ログインユーザ名を指定します。xxxユーザ名になります。
-pyyy : ログインユーザのパスワードを指定します。yyyパスワードになります。
-Dzzz : 利用するデータベース名を指定します。zzzデータベース名になります。

注意
ここで利用するデータベース名は、WordPressで使用しているデータベース名と同じものを使います。

8 行目 : 実際にテーブルを作成しています。sql文です。

CREATE TABLE `test_run_post` (
  `strkey` varchar(32) ,
  `numkey` int         ,
  PRIMARY KEY (`strkey`) );

簡単なテーブルです。
strkey : 文字列
numkey : 数値

2つの情報だけです。

WordPressの記事の中でテーブルを操作してみましょう

Wordpressの記事の中でテーブルを操作するには、先のプラグインを有効にして、記事の中で実際にphpコードを記述します。

以下は、テスト用テーブルのレコード削除、レコード追加、レコード参照を行った例です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
global $wpdb;

$html = '';
//	delete all table values.
$sql   = 'DELETE FROM `test_run_post`';
$query_result = $wpdb->query($sql);
if($query_result!==false){
	//	OK
	//	insert table values.
	for($ni=1;$ni<10;$ni++){
		$sql   = "INSERT INTO `test_run_post`(`strkey`,`numkey`) values('testkey".$ni."',".$ni.")";
		$query_result = $wpdb->query($sql);
		if($query_result===false){
			$html .= "*** table insert error\n$sql";
			break;
		}
	}
	if(empty($html)){
		//	no-error 
		//	print table values.
		$html .= '<table><tr><td><b>strkey</b></td><td><b>numkey</b></td></tr>';
		$sql   = 'SELECT * FROM `test_run_post`';
		$results = $wpdb->get_results($sql , ARRAY_A);
		
		foreach($results as $row){
			$html .= '<tr><td>'.$row['strkey'].'</td><td>'.$row['numkey'].'</td></tr>';
		}
		$html .= '</table>';
	}
}  else {
	$html .= "*** table delete error\n";
}

//	print out results.
echo $html;
?>
1 行目 : WordPressでmysqlを扱うときのデータベースオブジェクトになります。
Global宣言することで、ここで使えるようになります。
5-6 行目 : 一旦、テスト用テーブルの値を全削除します。
10-17 行目 : テスト用テーブルにテスト用の値を9レコード分を追加します。
19-29 行目 : テスト用テーブルの全データをHTML形式で出力します。

これを実際に動作させると以下のようになります。

strkey numkey
testkey1 1
testkey2 2
testkey3 3
testkey4 4
testkey5 5
testkey6 6
testkey7 7
testkey8 8
testkey9 9
ちょっと、長めですけど、データベースの操作について一通りのことをやってます。

ここでは、記事の中で実行する例を記載していますが、テーマテンプレートの中でも、同様にして動作させることができます。

これを駆使すれば、Wordpressと独自のデータを結合させて、情報の更新を簡単にできるようになります。






コメント

2 Responses to “WordPressの記事の中で独自のmysqlテーブルを操作する”

  1. Neethu
    2011年07月19日 @ 20:51:09

    Good one.This is veryhelpful for the wordpress beginners.Thanks for such a interesting tutorial.

  2. taro
    2011年08月04日 @ 17:55:52

    This is Admin.
    Thanks.

コメントをどうぞ








翻訳

最近の記事

カテゴリー

タグクラウド

execute remove フロントページ 投稿ページ トップページ install WIndows Note Convert META generator 日付 donwload file manage multibyte utf-8 unicode shiftjis euc console サイトマップ 問題 ParmaLink Redirect パーマリンク はみ出る pre テンプレート テーマ タグクラウド マルチランゲージ リダイレクト PHP(タグ) タグ table control HTML(タグ) コマンド 国際化(翻訳) SQLite(タグ) MySQL(タグ) qTranslate プラグイン(タグ) Wordpress(タグ)

リンク

このサイトは?

Joomla!,WordpressなどCMSを使ったサイト構築、サイト管理からソフトウェアの使用方法、開発環境までのヒントを記述します。

  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ