ランダムページ用DB更新2 ソースと解説
またまた、うっかりのんびりのミスでした。そのうちにまとめてと思いつつも、なんと一年以上もの間、ランダムファイル用データベースの更新を延ばし延ばしにしていました。ランダム・ページ・ボタンを押しても、最近のページが表示されないなぁと感じていらした方がいらっしゃると思います。ごめんなさい。こちらの不手際でした。あとで数えてみたら79ページ分も溜まっていました。
前回は、データベースのランダム・ページ用のテーブル(filelist)の全レコードをクリアして、新たに追加分を含めた全レコード分のデータを作成し、これをインポートする方式を作りました。
この方法だと、面倒なphpプログラムを作る手間が無いということで、とても簡単だと思えたのですが、今回はさらに簡単な方式を思いついたので、実際にやってみました。
行程図を描いてみました。前回の物と比較するとものすごく単純になっています。
この行程図を素にして、各段階を詳しく解説していきます。
追加分レコードだけを作成
無料のスプレッド・シート(表計算)OpenOfficeCalcを使って、レコード番号、ディレクトリ名、ファイル名、拡張子、結合したファイル名をcsv形式で出力しました。ここでのポイントは、kosakuディレクトリ(工作室)だけを対象としているという事です。ここが一番多いからです。出力されたファイルの中身は下のようになっています。
このCSVファイルの不要フィールドを削除
このCSVファイルの内、必要なのは一番目と最後のフィールドだけです。
これをphpMyAdminでMySQLのデータベース・テーブルにインポートできる形式に変換するプログラムを十進BASICで作ります。
前回のものでは、ディレクトリ名・ファイル名・拡張子名の三つのフィールドを十進BASICプログラム側で結合する方式にしていましたが、これをOpenOfficeCalc側で行なっているので、単純に、不要なフィールドを出力しないというだけの単純なプログラムとなっています。
OpenOfficeCalcから出力されたrandom1.csvファイルを1レコード読み込んで、1番目のフィールドと、5番目のフィールドを、出力用ファイルrandom2.csvに書き出すというものです。
できあがったrandom1.csvはテキスト・エディタ「秀丸エディタ」で読み込んで、手入力で追加分のレコードを書き入れます。kosakuディレクトリ以外は追加レコードがわずかなので、複雑な処理をするよりも手入力にした方が簡単だからです。
そして、文字コードをShift-JISからUnicode(UTF-8)に変換して保存します。実際は漢字が入っていないのでShift-JISのままで構いませんが。
これで、追加用の79件のデータができました。
データベースにインポートする
データベース・サーバ上のphpMyAdminを使って、このファイルをMySQLのfilelistテーブルにインポートします。
これで完了です。
十進BASICはこのように、簡単に文字列の操作ができますし、テキスト・エディタと組み合わせると、さらにいろいろな事ができます。
更新された、データベースは、[ランダム・ページ]ボタンを押すと新しいページも表示されるようになったので、今回の操作は成功でした。
ぜひ、各ページの右上にあるランダム・ページ・ボタンを押して試して見てください。
2025年1月5日 記