yomi-searchのカテゴリーを他のディレクトリーに表示-メモ2

その2
2、yomi-searchのスクリプトを活用してデータベースを読み出して表示

Mysqlを利用することに変わりはないけどせっかくのyomi-search phpのプログラムを活用するほうが合理的。
最初、うまく行かなかったから1の方法を試したのだけれど。
まず参考になったのがhoge256さんの
PHP の include, require で相対パスを指定して読み込む場合のメモ」という記事。
以下引用
この問題は、実行ファイルのディレクトリではなく、参照しているファイルのディレクトリを基にパスを取得することで回避することができます。具体的には dirname(__FILE__) を使って次のように書きます。

www/func/function.php ファイル

1
2
 
include(dirname(__FILE__) . "/../class/class.php");

これで、問題無く実行されたかと思います。

__FILE__ は PHP の定数で、現在参照中のファイルのフルパスとファイル名を表します。dirname はパス中のディレクトリを取得する関数です。なお、dirname の結果は最後に / が付かないので、上記の例のように / を付け忘れないようにしましょう。

引用終わり

とあります。

そこで唯一templateを通じて結果を書き出していないsitemap.phpをyomi-searchの上部のルートデレクトリーにコピーして

1
2
3
4
// インクルード
require 'class/db.php';
require 'functions.php';
require 'ads.php';

1
2
3
4
// インクルード
require dirname(__FILE__).'/yomi/class/db.php';
require dirname(__FILE__).'/yomi/functions.php';
require dirname(__FILE__).'/yomi/ads.php';

に変更。
これでルートディレクトリーからyomiディレクトリのインクルードファイルを読み込んで、mysqlを通じてサイトマップが表示されます。
長い間できないと思って放置していたのですがよかったです。
また、総登録数は、sitemap.phpの
// textテーブルから設定情報を配列($text)へ読込
の後ろくらいに

$total_num = $db->log_count($db->db_pre.'log');

を加えると取得できました。
ちなみにローカルのxamppの環境でもこの方法は有効です。もっと早く理解していれば無駄な時間を使わずにすんだかもしれません。hoge256さんの記事は2007年8月のものでした。すばらしい情報に感謝です。


yomi-searchのカテゴリーを他のディレクトリーに表示-メモ1

今更ですが、最近yomi-search php版でいろいろ試しています。
その第一がyomi-searchのカテゴリーを他のディレクトリーに表示させるというものです。
考え方としては、
1、mysqlのデータベースをphpで読み出して表示
2、yomi-searchのスクリプトを活用してデータベースを読み出して表示

今回は1のメモ

表示のサンプルになるのが
sitemap.phpかtemplateディレクトリーにあるtop.htmlの81行目あたりの// 最上層カテゴリからのコード。
1の場合、

<div>
$mysql_con = mysql_connect("localhost","[ユーザ名]","[PASSWORD]") or die("error");
mysql_query("SET NAMES utf8",$mysql_con);//ローカルの環境で文字化けになったので
mysql_select_db("yomi");//MySQLのデータベース名
$sql= "SELECT * FROM yomi_category";
$select_db = mysql_query($sql,$mysql_con);
while($row = mysql_fetch_array($select_db)){
$rowset[]=$row;
}
</div>

rowsetの配列はyomi_categoryテーブルをつぎのように格納している。
[0] => Array
(
[0] => 1
[id] => 1
[1] => ホームページ作成
[title] => ホームページ作成
[2] => 0
[up_id] => 0
[3] => 01/
[path] => 01/
[4] => 1
[top_list] => 1
[5] => 1
[etc_list] => 1
[6] =>
[regist] =>
[7] =>
[reffer] =>
[8] => ほーむぺーじさくせい
[sort_name] => ほーむぺーじさくせい
[9] => ホームページ作成に関するサイト
[comment] => ホームページ作成に関するサイト
)
ここまでくればあとは配列を活用して表示する。