ランダムページ用DB更新 ソースと解説

全ページのタイトルバーの右端に[ランダム・ページ]というボタンがあります。マウスを載せるとボタンが凹むので何かの機能だという事は解りますね。これは、このサイト内のページをランダムに選んで表示させるという機能なんです。

ちなみに、このプログラムに関しては、こちらで、そのボタンに関しては、こちらで解説しています。

昨年末に、httpからhttpsへ移行した際には、このボタンの部分の修正を失念していて、後になって全ページを書き換えたといういきさつがあります。

その時にテストとして確認していると、この機能で使っているデータベースをずいぶん長い間更新していなかったことに気がつきました。なんと調べてみたら2019年4月までしか登録していなかったのです。その後もかなりたくさんのページを書いていていますが、そのうちそのうちと思いつつも、その分の登録が延び延びになっていたのです。我ながら、のんびりした性格にはあきれてしまいました。

そこで、思い切って登録を続けようと、ひとつずつ登録し始めたのですが、数件がんばったところで、疲れてしまいました。同じ事の繰り返しができないのです。

こうなったら、もっと簡単にする方法を考えた方がいいみたいです。なにしろあと135レコードもあるのですから。

phpプログラムを作る方法を検討

データベース・サーバに追加用のテーブルを作り、そこに追加用のページデータをPCからインポートします。

phpプログラムを作って、その追加分を本来のテーブル(filelist)に書き加えます。

簡単なように見えますが、phpプログラム製作が面倒です。

一旦クリアして、新たに作る方法を検討

ランダム・ページ用のテーブル(filelist)の全レコードをクリアします。

PC側で追加分を含めた全レコードを作って、これをインポートします。

この方法だと、面倒なphpプログラムを作る手間がありませんので、ほとんどはPC側の作業だけで済みます。

一旦クリアして、新たに作る方法に決定

というわけで、なるべく簡単な方を選びました。

行程図を描いてみました。

左の画像をクリックすると別タブでPDFファイルが開きます。

この行程図を素にして、書く段階を詳しく解説していきます。

追加分ファイルを作成

1.無料のスプレッド・シート(表計算)OpenOfficeCalcを使って書いた追加分のページ・データをテキスト形式で出力しました。中身は図のようになっています。

2.これをMySQLでインポートできる形式に変換するプログラムを十進BASICで作ります。

上の表記では、\がバックスラッシュになっています。これは文字コード上の問題です。本来はいきなり/を描き入れたいのですが、十進BASICではスラッシュが使えないので、一旦\を書き込んで置きます。

内容としては、OpenOfficeCalcから出力されたCSVファイルを1レコード読み込んで、1番目のフィールドはそのまま数値とし、2番目のディレクトリ名の次に\を加えて、3番目のフィールドの文字列には.htmlと拡張子を着けて、ファイル名として、出力用ファイルaddfile.csvに書き出すというものです。

3.できあがったaddfile.csvはテキスト・エディタ「秀丸エディタ」で読み込んで、\を/に置換します。

これで、追加用のデータができました。

データベースからテーブルデータをエクスポート

4.データベースのfilelistの全レコードをCSVファイルとしてエクスポートしました。

中身は、1番目のIDの数値も文字列としてダブル・クォーテーションでくくられています。

5.これをOpenOfficeCalcで読み込み、csvファイルとして出力すると、図のようにダブル・クォーテーションがはずれます。

xfilelist.csvの2項目目をダブル・クォーテーションで囲む

6.一旦外した第2項目目の文字列をダブル・クォーテーションで囲むプログラムを十進BASICで作りました。

1番目は数値として、2番目は文字列として読み込み、そのまま書き出します。すると、文字列は自動的にダブル・クォーテーションで囲まれるのです。

ファイルを完成させて、データベースにインポートする

7.秀丸エディタにnew_filelist.csvを読み込み、さらにaddfile.csvを追加します。

漢字が入っている場合は、文字コードの変換が必要ですが、今回はShift_Jisのままです。

8.データベースがわから、このファイルをインポートします。

これで完了です。

十進BASICはこのように、簡単に文字列の操作ができますし、テキスト・エディタと組み合わせると、さらにいろいろな事ができます。

更新された、データベースは、[ランダム・ページ]ボタンを押すと新しいページも表示されるようになったので、今回の操作は成功でした。

2023年2月5日 記