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

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

購読(RSS)

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と独自のデータを結合させて、情報の更新を簡単にできるようになります。


ブックマークへ追加: はてなブックマークへ追加するdel.icio.usLivedoor ClipYahoo!FC2Nifty ClipPOOKMARK. AirlinesBuzzurl(バザール)Choixnewsing

Trackback URL

このコメントは管理人から承認された後、表示されます。


コメント

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

  1. Neethu
    2011年07月19日 @ %H:%M

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

  2. taro
    2011年08月04日 @ %H:%M

    This is Admin.
    Thanks. :)

コメントをどうぞ





*