2006/05/22
XOOPSでいくつかのテーブルから共通のデータみたいに抜き出したい場合。 たとえば、ニュースモジュールとうぇブログモジュールとワードプレスモジュールから「最近の記事一覧を抜きたい!」という場合。 こんなSQLを考えました。
SELECT "weblog" AS dirname, blog_id AS id, "blog_id" AS id_str, title AS title, contents AS content, created AS created, "details.php" AS link
FROM xoops_weblog
uni-on SELECT "wordpress" AS dirname, ID AS id, "id" AS id_str, post_title AS title, post_content AS content, unix_timestamp( post_date ) AS created, "index.php" AS link
FROM xoops_wp_posts
uni-on SELECT "article" AS dirname, storyid AS id, "storyid" AS id_str, title AS title, home_text AS content, created AS created, "article.php" AS link
FROM xoops_story
ORDER BY created DESC
LIMIT 10
OFFSET 0
しかし、これをやると、uni-onで定数とした部分。は、"weblog"の6文字で切り落とされてしまいます。 つまり、wordpressと出て欲しいディレクトリ名がwordprまでしか出てきません。これは困ります。 ということで、その場しのぎ的に、定数の部分は
<?php
'dirname' => sprintf('"%20s"', "wordpress"),
?>
とかしてみました。ただし、データをFetchした後に、空白は取り除く必要があります。SQL側で良い対応方法がありそうですが。 |
|
|
トラックバックURL
投稿された内容の著作権はコメントの投稿者に帰属します。