自分がリーダーをしていた仕事が今年最初からあったのですが
7月いっぱいで終わります。
4月までは要件定義、外部設計、内部設計、コーディング、単体テストと
忙しかったのですが、一ヶ月前倒しで進めていたことから
(本当はコーディングで、5月末までが単体テスト予定)
5月、6月、7月前半で統合テスト、システムテストも終わり
予定より2週間早くリリースができ、
今は保守で様子見をしているのですが
重大なバグもおきず、今週1週間でようやく終わります。
ミディリンも気がついたら1月4日から7ヶ月近く毎日連続更新をしており
O型面倒くさがりや人間なのに、意外とマメなところもあったのだなと
自分で驚きながら更新をしている毎日なのですが
仕事のほうは今月は落ち着いている一方
ミディリンの方が慌ただしいです。
今、音楽ライブラリ(MIDI、MP3など)の再構築をしており、
今まではHTMLにより更新係さんに更新してもらっていました。
HTML更新なので、更新は楽(技術的に楽という意味)にできるのですが
HTMLベースなので検索ができなかったり
登録者情報が変わった場合、一個ずつ曲を探して書きかえるなど
メンテナンスをするときに膨大な作業がかかるのが現状でした。
それを改善するために、前回掲示板過去ログシステムで失敗に終わった
PHP+Mysqlに再チャレンジし、
音楽の検索・登録・修正・削除システムを作っています。
例えば、1人の人が20曲投稿したとします。
その人のURLとメールアドレスが変わったら、
HTMLだと20×2=40個書き換えないといけません。
しかし、DBを使うことによって登録者情報のテーブルを1つ作り、
その登録者情報と曲をリレーショナルDBを使い結合して出力するという方式をとるため
(ただのCSVによるファイル検索だとこれができなく全情報を置換しなければいけない)
今度の新システムは、メールアドレス、URLを1回ずつ変えるだけでいいのです。
その辺りは更新のメリットがかなり上がりますね。
あとは1つ音楽のジャンルを追加したら
他のページにも自動的に追加されるような仕組みや
あとは曲名や作曲者で検索できて、かつ
作曲者検索に投稿者別の投稿数ランキング(投稿数が多い投稿者ほど上位に表示される)などを作成しようと思ってます。
そこでシステムを構築するための前準備に入りました。
一番最初に苦戦したのが、毎度の事ながらHTMLからCSVをつくる作業です。
今回は約280曲を、一個ずつすべてコピー&ペーストを行ったため、
1曲の登録情報が
ハンドルネーム、ジャンル、曲名、ファイル名(DL先)、メールアドレス、感想LV、音源、コメント、更新日などあると、
280×項目だけあるので
CSVを作成する為に数千回のコピー&ペーストを行う気が遠くなる作業から手をつけました。
これが20時間くらいかけて、とりあえず現ライブラリのものはほぼ終了です。
次にDB設計を考え、作成したDBにCSVデータを流し込み、データ格納終了です。
次に検索システムは、上記で挙げた
ライブラリ検索や、投稿者検索、投稿者ランキングなど案を作成し
現機能としてあるライブラリ検索のみ早急に作りました。
その他の投稿者検索、投稿者ランキングは後付で制作します。
それと登録・修正・削除システムです。
更新係さんが曲や投稿者の情報を登録・更新するシステムで
今まではファイルを更新するときに更新係さんが
HTMLを直接編集するという作業でしたが
ブラウザで必要項目を入力すると
後は自動的にライブラリに反映され、検索や作曲者検索、ランキングにも同時に反映されるという仕組みです。
これが一番難易度が高く、画面だけで、何十画面となり
IDとパスワードでシステムにログインした後、
登録や、修正などを行うと自動的にID名をデータとしてもち
どのデータをいつ、誰が修正したかを自動記録するようにしています。
また、今までは更新日も手で入力していましたが
更新した日が自動的に入るような仕組みです。
できるだけ、PHPでテンプレートを作り、
同じテンプレートで登録や修正ができ
パラメータの渡し方を変えて登録・修正・削除・内部検索ができるように作成中です。
仕事をしながらこのシステムを構築するだけでも
暇な時間にやっているので数ヶ月かかりますが・・・・・
もう1つ、サイト移転という大きな作業があります。
トップページのso-netはかわらないのですが
チェルトや音楽、イラスト、掲示板、リディア同盟などが置いてある
さくらネットが移動になるので、ミディリンの8割以上を
移動するという涙がちょちょぎれる作業があるんです。
音楽のライブラリ更新にかかってくるので
旧サイトでは旧音楽ライブラリを使って
新サーバー移転後、音楽システムが完成したら新しいライブラリに移行しようと考えています。
自分でこういうシステムの仕事をするようになってから
システムを仕事で作るには何千万円くらいかかるのかという予想はつくようになったのですが
ミディリンのシステムと移転構築を仕事(要件定義〜設計〜コーディング〜テスト)として頼むと、
システムとしては小規模ながらも750万円以上〜1000万円位はかかるだろうなと
(1人単価:80万(安いSE、PGさん)を3人で3人月ちょっと〜4人月くらいかかるという見積もり)
これを一人で仕事と併用しながら、趣味でやるには大きいよ、つらいよという泣きごとを言いながらも、
趣味サイトで、技術者を雇うこともできないので、
前回のログ検索システムもシステムはそのものはできていたので
プログラムを流用できるところは流用してプログラム組んでいます。
作っているプログラムはこんなの↓
(まだ完成の1/20にも至ってない)
<?php /// 2004.6.26 Makoto Yasuda Create /// ?>
<?php
//////////各設定値を決める//////////
//DBの設定値の記入
function db_property(){
//DB名
$dbname = "●";
//ホスト名
$hostname = "●";
//userid
$userid = "●";
//password
$passwd = "●";
return array($dbname,$hostname,$userid,$passwd);
}
<?php /// 2004.7.23 Makoto Yasuda Create /// ?>
<?php
//・配列を取得して出力する
//・tableタグも付属して出力
//・アンカータグを埋め込み、hiddenフィールドにlink情報に
// どこからクリックされたかを判別するJavascritpをセット
//・printArrayTableLinkと違うところは、hiddenフィールドが2つに対応
function printArrayTableLink2($doublearray,$tr_haba,$td_width,$formname,$hiddename,$hiddenarray){
$linkarray = $doublearray[0];
$namearray = $doublearray[1];
//ループカウント
$roop_count = count($linkarray) + ($tr_haba - count($linkarray)%$tr_haba);
echo "<table border=0>";
//チェックボックス表示
for($i=0;$i<$roop_count;$i++){
if($i%$tr_haba==0){
echo "<tr valign=top>";
}
echo "<td width=" . $td_width . ">";
if($i < count($linkarray)){
echo "<a href=\"javascript:Submit('".$formname."')\""
;
echo " onclick=\"window.document.".$formname.".link.value='"
. $linkarray[$i] ."';";
echo "window.document.".$formname."." . $hiddename.
".value='" . $hiddenarray[$i] ."'\">";
echo $namearray[$i];
echo "</a>";
}
echo " </td>";
if($i%$tr_haba==$tr_haba-1){
echo "</tr>";
}
}
echo "</table>";
}
?>
<?php /// 2004.7.23 Makoto Yasuda Create /// ?>
<?php
//空かnullなら空を表示して、値があればそのまま表示
function printNullCheck($data){
if($data==null || $data=='' || $data == '0000-00-00'){
return "";
}
return $data;
}
?>
<?php /// 2004.07.04 Makoto Yasuda Create /// ?>
<?php
//SQLを実行する(select専用)
function sql_run($con,$sql){
//select文を実行
if(!$res=mysql_query($sql)){
echo "SQL失敗";
mysql_close($con);//データベースを切断
exit;
}
if (!($rs = mysql_query($sql))) {
die;
}
else{
return array($res,$rs);
}
}
//SQLを実行する(select以外)
function sql_run_otherselect($con,$sql){
//select文を実行
if(!$res=mysql_query($sql)){
echo "SQL失敗";
mysql_close($con);//データベースを切断
exit;
}
else{
return array($res,$rs);
}
}
?>
<?php /// 2004.7.23 Makoto Yasuda Create /// ?>
<?php
$pagestate = $_POST['pagestate'];
echo "<input type=hidden name=id value=".$id.">";
echo "<input type=hidden name=pass value=".$pass.">";
echo "<input type=hidden name=pagestate value=".$pagestate.">";
?>
<?php /// 2004.7.23 Makoto Yasuda Create /// ?>
<?php
//ヘッター読み込み
include '../comm/header.php';
include '../comm/property.php';
include '../comm/sql_run.php';
include 'music_sql.php';
include 'music_control_pagestate.php';
?>
<?php
$db_key = db_property();//DB設定値の読み込み
//データベースに接続
if(!$con=mysql_connect($db_key[1],$db_key[2],$db_key[3])){
echo "接続失敗";
exit;
}
//データベースを選択
$row=mysql_select_db($db_key[0],$con);
$id = $_POST['id'];
$pass = $_POST['pass'];
$sql = sql_login($id,$pass);
$rs_array = sql_run($con,$sql);
$res = $rs_array[0];
$rs = $rs_array[1];
//ログイン失敗
if(mysql_num_rows($rs)!=1){
echo "<font color=red>IDかパスワードが間違っています。</font><p>";
echo "<a href=\"music_control_login.php\">認証画面に戻ります</a>";
}
//ログイン成功
else{
//注意書きの表示
include 'music_control_attention.php';
echo "<form name=\"mainform\" method=\"post\"
action=\"music_control_index.php\">";
//hidden項目の保持
include 'music_control_hiddenhold.php';
//メニュー表示//
echo "<font color=#FF00FF>【検索・登録・修正・削除メニュー一覧】</font>";
echo "<table border=0 width=500>";
echo "<tr>";
echo "<td width=125><font color=#FF00FF>■</FONT><a
href=\"javascript:Submit('mainform')\" onclick=\"window.document.mainform.pagestate.value='".pagestate_toukousyaSearch()."'\">投稿者検索</a></td>";
echo "<td width=125><font color=#FF00FF>■</FONT><a
href=\"javascript:Submit('mainform')\" onclick=\"window.document.mainform.pagestate.value='".pagestate_toukousyaAdd()."'\">投稿者登録</a></td>";
echo "<td width=125><font color=#FF00FF>■</FONT><a
href=\"javascript:Submit('mainform')\" onclick=\"window.document.mainform.pagestate.value='".pagestate_toukousyaEdit()."'\">投稿者修正</a></td>";
echo "<td width=125><font color=#FF00FF>■</FONT><a
href=\"javascript:Submit('mainform')\" onclick=\"window.document.mainform.pagestate.value='".pagestate_toukousyaDel()."'\">投稿者削除</a></td>";
echo "<tr>";
echo "</table><HR>";
////////////////各機能////////////////
//+投稿者検索+//
if($pagestate==pagestate_toukousyaSearch()){
$pagename = "検索";
include 'music_control_toukousyaSearch.php';
}
//+投稿者検索結果リスト+//
else if($pagestate==pagestate_toukousyaSearchResultList()){
$pagename = "検索リスト";
$nextpagestate = pagestate_toukousyaSearchResultdetails();//次ページステータスセット
include 'music_control_toukousyaSearchResultList.php';
}
//+投稿者検索詳細+//
else if($pagestate==pagestate_toukousyaSearchResultdetails()){
$pagename = "検索詳細";
include 'music_control_toukousyaSearchResultdetails.php';
}
//+投稿者登録+//
else if($pagestate==pagestate_toukousyaAdd()){
$pagename = "登録";
include 'music_control_toukousyaAdd.php';
}
//+投稿者登録終了+//
else if($pagestate==pagestate_toukousyaAdd_end()){
include 'music_control_toukousyaAdd_end.php';
}
//+投稿者修正+//
else if($pagestate==pagestate_toukousyaEdit()){
$pagename = "修正";
include 'music_control_toukousyaEdit.php';
}
//+投稿者修正検索結果リスト+//
else if($pagestate==pagestate_toukousyaEditSearchResultList()){
$pagename = "修正検索リスト";
$nextpagestate = pagestate_toukousyaEditSearchResultdetails();//次ページステータスセット
include 'music_control_toukousyaEditSearchResultList.php';
}
//+投稿者修正検索詳細+//
else if($pagestate==pagestate_toukousyaEditSearchResultdetails()){
$pagename = "修正検索詳細";
include 'music_control_toukousyaEditSearchResultdetails.php';
}
//+投稿者修正終了+//
else if($pagestate==pagestate_toukousyaEdit_end()){
include 'music_control_toukousyaEdit_end.php';
}
//+投稿者削除+//
else if($pagestate==pagestate_toukousyaDel()){
$pagename = "削除";
include 'music_control_toukousyaDel.php';
}
echo "</form>";
echo "<HR><font color=#FF00FF>■</FONT><a href=\"music_control_login.php\">ログアウトをします</a>";
}
//データベースを切断
mysql_close($con);
?>
<?php
//フッター読み込み
include '../comm/footer.php';
?>
<?php /// 2004.7.23 Makoto Yasuda Create /// ?>
<?php
//////////ページステータス//////////
//登録者検索
function pagestate_toukousyaSearch(){
return "toukousyaSearch";
}
//登録者検索結果リスト
function pagestate_toukousyaSearchResultList(){
return "toukousyaAddSearchResultList";
}
//登録者検索詳細
function pagestate_toukousyaSearchResultdetails(){
return "toukousyaSearchResultdetails";
}
//登録者追加
function pagestate_toukousyaAdd(){
return "toukousyaAdd";
}
//登録者追加終了
function pagestate_toukousyaAdd_end(){
return "toukousyaAdd_end";
}
//登録者修正
function pagestate_toukousyaEdit(){
return "toukousyaEdit";
}
//登録者修正検索結果リスト
function pagestate_toukousyaEditSearchResultList(){
return "toukousyaEditSearchResultList";
}
//登録者修正検索詳細
function pagestate_toukousyaEditSearchResultdetails(){
return "toukousyaEditSearchResultdetails";
}
//登録者修正終了
function pagestate_toukousyaEdit_end(){
return "toukousyaEdit_end";
}
//登録者削除
function pagestate_toukousyaDel(){
return "toukousyaDel";
}
?>
<?php /// 2004.7.23 Makoto Yasuda Create /// ?>
<?php
//値取得
$toukousya_name = $_POST['toukousya_name'];
$mailaddress = $_POST['mailaddress'];
$hpurl = $_POST['hpurl'];
//入力チェック
//DBに削除区分が0のもので、同一の投稿者名がいたらエラーで、
//フィールドの値は保持したまま
$sql = sql_get_toukousya(" and 投稿者 = '".$toukousya_name."'");
$rs_array = sql_run($con,$sql);
$res = $rs_array[0];
$rs = $rs_array[1];
//登録エラー:投稿者重複がいた場合
if(mysql_num_rows($rs)!=0){
echo "<font color=red>既に同じ投稿者名が存在していますので登録できません。</font><p>";
include 'music_control_toukousyaAdd.php';
}
//
else{
//投稿者IDのMAX取得
$sql = sql_toukousya_id_max();
$rs_array = sql_run($con,$sql);
while($row=mysql_fetch_array($rs_array[0])){
$toukousya_id_max = $row["max_id"];
}
$toukousya_id_max_int_plus = (int)substr($toukousya_id_max,1)+1;
$rp_cnt = 4 - strlen($toukousya_id_max_int_plus);//4桁にそろえるため
for($j=0;$j<$rp_cnt;$j++){
$toukousya_id_max_int_plus = "0".$toukousya_id_max_int_plus;//0付加
}
$toukousyaid = "T".$toukousya_id_max_int_plus;//新規投稿者ID
$kousinsya = $id;
//データinsert
$sql = sql_insert_toukousya($toukousyaid,$toukousya_name,$mailaddress,$hpurl,$kousinsya);
$rs_array = sql_run_otherselect($con,$sql);
//メッセージ表示
echo "<font color=red>データを登録しました。</font><p>";
}
?>
<?php /// 2004.7.23 Makoto Yasuda Create /// ?>
<?php
include 'music_control_toukousyaTempUnit.php';
?>
<?php
//登録ボタン
echo " <a href=\"javascript:Submit('mainform')\" onclick=\"window.document.mainform.pagestate.value='".pagestate_toukousyaAdd_end()."'\">登録します</a>";
?>
<?php /// 2004.7.25 Makoto Yasuda Create /// ?>
<?php
//値取得
$toukousya_id = $_POST['toukousya_id'];
$toukousya_name = $_POST['toukousya_name'];
$mailaddress = $_POST['mailaddress'];
$hpurl = $_POST['hpurl'];
//入力チェック
//DBに削除区分が0のもので、自分以外の投稿者IDで、変更後の名前に同一の投稿者名がいたらエラーで、
//フィールドの値は保持したまま
$sql = sql_get_toukousya(" and 投稿者 = '".$toukousya_name."'
and not 投稿者ID = '".$toukousya_id."'");
echo $sql;
$rs_array = sql_run($con,$sql);
$res = $rs_array[0];
$rs = $rs_array[1];
//登録エラー:投稿者重複がいた場合
if(mysql_num_rows($rs)!=0){
echo "<font color=red>既に同じ投稿者名が存在していますので登録できません。</font><p>";
include 'music_control_toukousyaEdit_end.php';
}
//
else{
/*
//投稿者IDのMAX取得
$sql = sql_toukousya_id_max();
$rs_array = sql_run($con,$sql);
while($row=mysql_fetch_array($rs_array[0])){
$toukousya_id_max = $row["max_id"];
}
$toukousya_id_max_int_plus = (int)substr($toukousya_id_max,1)+1;
$rp_cnt = 4 - strlen($toukousya_id_max_int_plus);//4桁にそろえるため
for($j=0;$j<$rp_cnt;$j++){
$toukousya_id_max_int_plus = "0".$toukousya_id_max_int_plus;//0付加
}
$toukousyaid = "T".$toukousya_id_max_int_plus;//新規投稿者ID
$kousinsya = $id;
//データinsert
$sql = sql_insert_toukousya($toukousyaid,$toukousya_name,$mailaddress,$hpurl,$kousinsya);
$rs_array = sql_run_otherselect($con,$sql);
*/
//メッセージ表示
echo "<font color=red>データを修正しました。</font><p>";
}
?>
<?php /// 2004.7.25 Makoto Yasuda Create /// ?>
<?php
$pagename = "修正検索";
echo "修正対象物を限定するため検索してください<BR>";
include 'music_control_toukousyaTempUnit.php';
?>
<?php
//検索ボタン
echo " <a href=\"javascript:Submit('mainform')\" onclick=\"window.document.mainform.pagestate.value='".pagestate_toukousyaEditSearchResultList()."'\">検索します</a>";
?>
<?php /// 2004.7.24 Makoto Yasuda Create /// ?>
<?php
include 'music_control_toukousyaSearchResultdetails.php';
?>
<?php
//修正ボタン
echo " <a href=\"javascript:Submit('mainform')\" onclick=\"window.document.mainform.pagestate.value='".pagestate_toukousyaEdit_end()."'\">修正します</a>";
?>
<?php /// 2004.7.24 Makoto Yasuda Create /// ?>
<?php
include 'music_control_toukousyaSearchResultdetails.php';
?>
<?php
//修正ボタン
echo " <a href=\"javascript:Submit('mainform')\" onclick=\"window.document.mainform.pagestate.value='".pagestate_toukousyaEdit_end()."'\">修正します</a>";
?>
<?php /// 2004.7.24 Makoto Yasuda Create /// ?>
<?php
include 'music_control_toukousyaSearchResultList.php';
?>
<?php /// 2004.7.24 Makoto Yasuda Create /// ?>
<?php
$pagename = "検索";
include 'music_control_toukousyaTempUnit.php';
?>
<?php
//検索ボタン
echo " <a href=\"javascript:Submit('mainform')\" onclick=\"window.document.mainform.pagestate.value='".pagestate_toukousyaSearchResultList()."'\">検索します</a>";
?>
<?php /// 2004.7.24 Makoto Yasuda Create /// ?>
<?php
$list_key = $_POST['list_key'];//キー項目取得
$sql = sql_get_toukousya(" and 投稿者ID = '".$list_key."'");
$rs_array = sql_run($con,$sql);
$res = $rs_array[0];
$rs = $rs_array[1];
while($row=mysql_fetch_array($res)){
$toukousya_id = $row["投稿者ID"];
$toukousya_name = $row["投稿者"];
$mailaddress = $row["メールアドレス"];
$hpurl = $row["URL"];
}
include 'music_control_toukousyaTempUnit.php';
?>
<?php /// 2004.7.24 Makoto Yasuda Create /// ?>
<?php
//値取得
$toukousya_name = $_POST['toukousya_name'];
$mailaddress = $_POST['mailaddress'];
$hpurl = $_POST['hpurl'];
//SQLパラメータ設定
if($toukousya_name!=''){
$param = $param ." and 投稿者 = '".$toukousya_name."'";
}
if($mailaddress!=''){
$param = $param ." and メールアドレス = '".$mailaddress."'";
}
if($hpurl!=''){
$param = $param ." and URL = '".$hpurl."'";
}
//投稿者一覧
$sql = sql_get_toukousya($param);
$rs_array = sql_run($con,$sql);
$res = $rs_array[0];
$rs = $rs_array[1];
//投稿者がいなかった場合
if(mysql_num_rows($rs)==0){
echo "<font color=red>検索条件の投稿者が存在しません</font><p>";
include 'music_control_toukousyaSearch.php';
}
//投稿者が存在するとき
else{
echo "検索結果<font color=red>".mysql_num_rows($rs)."件</font><p>";
//検索結果を配列に格納
$j=0;
while($row=mysql_fetch_array($res)){
$toukousya_id_List[$j] = $row["投稿者ID"];
$toukousya_name_List[$j] = $row["投稿者"];
$mailaddress_List[$j] = $row["メールアドレス"];
$hpurl_List[$j] = $row["URL"];
}
include 'music_control_toukousyaTempList.php';
}
?>
<?php /// 2004.7.24 Makoto Yasuda Create /// ?>
<table width="500" border="0" cellspacing="4"
bgcolor="#FF6600">
<tr>
<td><font color="#FFFFFF"><b>■パステル・ミディリン音楽ライブラリ更新:投稿者
<?php
echo $pagename;
?>
画面</b></font></td>
</tr>
</table>
<table width="500" border="0" cellpadding="3">
<tr>
<td width="50"> </td>
<td width="100">登録者</td>
<td width="150">メールアドレス</td>
<td width="200">URL</td>
</tr>
<?php
for($k=0;$k<count($toukousya_id_List);$k++){
echo "<tr valign=\"top\">";
echo " <td width=\"50\"><input type=hidden name=list_key><a
href=\"javascript:Submit('mainform')\" onclick=\"window.document.mainform.list_key.value='".$toukousya_id_List[$j]."';window.document.mainform.pagestate.value='".$nextpagestate."'\">[詳細]</a> </td>";
echo " <td width=\"100\">".$toukousya_name_List[$j]." </td>";
echo " <td width=\"150\">".$mailaddress_List[$j]." </td>";
echo " <td width=\"200\">".$hpurl_List[$j]." </td>";
echo "</tr>";
}
?>
</table>
<?php /// 2004.7.24 Makoto Yasuda Create /// ?>
<table width="500" border="0" cellspacing="4"
bgcolor="#FF6600">
<tr>
<td><font color="#FFFFFF"><b>■パステル・ミディリン音楽ライブラリ更新:投稿者
<?php
echo $pagename;
?>
画面</b></font></td>
</tr>
</table>
<?php
//投稿者ID
echo "<input type=hidden name=toukousya_id value=" .$toukousya_id.">";
?>
<table width="75%" border="0">
<tr>
<td>投稿者名</td>
<td>
<?php
echo "<input type=text name=toukousya_name value=" .$toukousya_name.">";
?>
</td>
</tr>
<tr>
<td>メールアドレス</td>
<td>
<?php
echo "<input type=text name=mailaddress size=40 value=" .$mailaddress.
">";
?>
</td>
</tr>
<tr>
<td>ホームページURL</td>
<td>
<?php
echo "<input type=text name=hpurl size=50 value=" .$hpurl. ">";
?>
</td>
</tr>
</table>
<?php /// 2004.7.23 Makoto Yasuda Create /// ?>
<?php
//MIDI一覧
function music_genre_original_midi($con){
$sql = sql_get_genre_original_midi();
$temp = music_genre_original_comm_set($con,$sql);
return $temp;
}
//MP3一覧
function music_genre_original_mp3($con){
$sql = sql_get_genre_original_mp3();
$temp = music_genre_original_comm_set($con,$sql);
return $temp;
}
function music_genre_original_comm_set($con,$sql){
$rs_array = sql_run($con,$sql);
$res = $rs_array[0];
$i = 0;
while($row=mysql_fetch_array($res)){
$temp01[$i] = $row["ジャンル"];
$temp02[$i] = $row["ジャンル日本語名"];
$temp03[$i] = $row["音楽拡張子区分"];
$i++;
}
$temp = array($temp01,$temp02,$temp03);
return $temp;
}
?>
<?php /// 2004.7.23 Makoto Yasuda Create /// ?>
<?php
//ヘッター読み込み
include '../comm/header.php';
?>
<?php
//その他読み込み
include '../comm/property.php';
include '../comm/sql_run.php';
include '../comm/printArrayTableLink2.php';
include 'music_sql.php';
include 'music_sum_original.php';
include 'music_genre_original.php';
?>
<font color="#FF00FF">【読者投稿】(投稿については<a href="../toukou/index-frame.html">こちら</a>をご覧下さいね♪)<br>
●<font color="#FF00FF">オリジナル曲:
<?php
//オリジナル音楽の総曲数
$db_key = db_property();//DB設定値の読み込み
//データベースに接続
if(!$con=mysql_connect($db_key[1],$db_key[2],$db_key[3])){
echo "接続失敗";
exit;
}
//データベースを選択
$row=mysql_select_db($db_key[0],$con);
//MIDIの総計
$sum_midi = music_sum_original_midi($con);
//MIDI以外の総数
$sum_midiother = music_sum_original_midiother($con);
//曲数表示
echo $sum_midi + $sum_midiother ."曲";
echo "(MIDI:" . $sum_midi."曲/";
echo "MP3:" .$sum_midiother."曲)";
?>
</font></font>
<br>
(オリジナル曲更新係:リュートさん・JASRAC_URL登録曲更新係:藤原光成さん)
<?php
//formの定義
$formname = "mainform";
$hidden2 = "syubetu";
echo "<form action=\"music_search_result.php\" name=\"".$formname."\"
method=\"POST\">";
echo "<input type=hidden name=link>";
echo "<input type=hidden name=" . $hidden2. ">";
//折り返し行
$tr_haba = 4;
$td_width = 125;
//音楽ジャンル(MIDI)
$genre_midi = music_genre_original_midi($con);
//音楽ジャンル(MP3)
$genre_mp3 = music_genre_original_mp3($con);
echo "<font color=\"#FF00FF\">◆MIDI</font>";
printArrayTableLink2($genre_midi,$tr_haba,$td_width,$formname,$hidden2,$genre_midi[2]);
echo "<font color=\"#FF00FF\">◆MIDI以外(MP3など)</font>";
printArrayTableLink2($genre_mp3,$tr_haba,$td_width,$formname,$hidden2,$genre_mp3[2]);
//データベースを切断
mysql_close($con);
?>
</form>
<?php
//フッター読み込み
include '../comm/footer.php';
?>
<?php /// 2004.7.23 Makoto Yasuda Create /// ?>
<?php
//リンク切れ区分が0でなければ、リンク切れという文字を出力
function music_print_linkgure($data){
if($data=='1'){
return "リンク切";
}
return "";
}
?>
<?php /// 2004.6.26 Makoto Yasuda Create /// ?>
<?php
//////////各設定値を決める//////////
function music_file_pass_midi(){
return "http://www.kasumi.sakura.ne.jp/~midilin/";
}
function music_file_pass_othermidi_text(){
return "http://www.kasumi.sakura.ne.jp/~midilin/";
}
?>
<?php /// 2004.7.23 Makoto Yasuda Create /// ?>
<?php
//ヘッター読み込み
include '../comm/header.php';
include '../comm/property.php';
include '../comm/sql_run.php';
include '../comm/printNullCheck.php';
include 'music_sql.php';
include 'music_genre_original.php';
include 'music_property.php';
include 'music_print_linkgure.php';
?>
<?php
$db_key = db_property();//DB設定値の読み込み
//データベースに接続
if(!$con=mysql_connect($db_key[1],$db_key[2],$db_key[3])){
echo "接続失敗";
exit;
}
//データベースを選択
$row=mysql_select_db($db_key[0],$con);
$sql_key = $_POST['link'];
$syubetu_flag = $_POST['syubetu'];
$sql_param = " and ジャンル = '" . $sql_key ."'";
////midiの場合////
if($syubetu_flag==1){
$sql = sql_get_original_midi_outerjoin($sql_param);
}
////midi以外の場合////
else{
$sql = sql_get_original_othermidi_outerjoin($sql_param);
echo "「リンク切」と表示されているものは、こちらでリンクが切れているものを確認しているものです。データ作成者に直接お問い合わせください。";
}
$rs_array = sql_run($con,$sql);
$res = $rs_array[0];
$i = 0;
while($row=mysql_fetch_array($res)){
//HTML出力部分
echo "<P align=center><B><FONT color=#ff00ff size=5><I>".printNullCheck($row["更新日"])."</I></FONT></B>
<BR>";
echo "<FONT size=+1><B>-<A href=\"mailto:".$row["メールアドレス"]."\">".$row["投稿者"]."</A>-</B></FONT>
";
echo "<DIV align=center>";
echo "<TABLE style=\"BORDER-COLLAPSE: collapse\"
borderColor=#111111 cellSpacing=3 cellPadding=5 width=500 border=0><TR
align=middle>";
//midiの場合
if($syubetu_flag==1){
$filepassmidi = music_file_pass_midi() . $row["ファイルパス"];
echo "<TD width=40 bgColor=#FFFF77>midi</TD><TD
width=240 bgColor=#ccffcc><P align=center><B><A href=\"".$filepassmidi."\">".$row["曲名"]."</A></B></P></TD>";
echo "<TD width=160 bgColor=#ffccff><P align=center>".$row["音源"]."</P></TD>";
}
///midi以外の場合
else{
echo "<TD width=40 bgColor=#FFFF77>mp3</TD><TD
width=240 bgColor=#ccffcc><P align=center><B><A href=\"".$row["ファイルパス"]."\">".$row["曲名"]."</A></B></P></TD>";
echo "<TD width=50 bgColor=#ffccff><P align=center><A
href=\"".music_file_pass_othermidi_text().$row["テキストファイルパス"]."\">txt</A></P></TD>";
echo "<TD width=50 bgColor=#ffccff><P align=center>".$row["容量"]."</P></TD>";
echo "<TD width=60 bgColor=#ffccff><P align=center>".music_print_linkgure($row["リンク切れ区分"])."</P></TD>";
}
echo "<TD width=60 bgColor=#aaeaff>".$row["感想Lv"]."</TD></TR>";
echo "</TABLE>";
echo "<TABLE style=\"BORDER-COLLAPSE: collapse\" borderColor=#111111
cellSpacing=3 cellPadding=5 width=500 border=0><TR align=middle>";
echo "<TR align=middle><TD bgColor=lemonchiffon colSpan=3>".$row["コメント"]."</TD></TR>";
echo "</TABLE>";
}
//データベースを切断
mysql_close($con);
?>
<!--
</DIV>
-->
<?php
//フッター読み込み
include '../comm/footer.php';
?>
<?php /// 2004.7.23 Makoto Yasuda Create /// ?>
<?php
//オリジナル音楽の総数(MIDI)を求める
function sql_get_sum_music_original_midi(){
$sql = "select count(*) as count from music_original_midi where not
削除区分 = 1;";
return $sql;
}
//オリジナル音楽の総数(MIDI以外)を求める
function sql_get_sum_music_original_midiother(){
$sql = "select count(*) as count from music_original_othermidi where
not 削除区分 = 1;";
return $sql;
}
//ジャンル全部取得
function sql_get_genre_original(){
$sql = "select ジャンル,ジャンル日本語名,音楽拡張子区分 from genre_original_mst where not
削除区分 = 1";
return $sql;
}
//ジャンルMIDI取得
function sql_get_genre_original_midi(){
$sql = "select ジャンル,ジャンル日本語名,音楽拡張子区分 from genre_original_mst where not
削除区分 = 1 and 音楽拡張子区分 = 1";
return $sql;
}
//ジャンルMP3取得
function sql_get_genre_original_mp3(){
$sql = "select ジャンル,ジャンル日本語名,音楽拡張子区分 from genre_original_mst where not
削除区分 = 1 and 音楽拡張子区分 = 2";
return $sql;
}
//midi検索
function sql_get_original_midi($param){
$sql = "select id,ジャンル,音楽シリアルNo,投稿者ID,曲名,ファイルパス,音源,感想Lv,コメント,更新者,更新日,更新時刻,削除区分
from music_original_midi where not 削除区分 = 1 " .$param;
return $sql;
}
//midi検索(外部結合)
function sql_get_original_midi_outerjoin($param){
$sql = "select mom.id,mom.ジャンル,mom.音楽シリアルNo,mom.曲名,mom.ファイルパス,mom.音源,mom.感想Lv,mom.コメント,mom.更新日,mom.更新者,mom.更新時刻,mom.削除区分,cm.投稿者,cm.メールアドレス,cm.URL
from music_original_midi mom left outer join contributor_mst cm on mom.投稿者ID
= cm.投稿者ID where not mom.削除区分 = 1 and not cm.削除区分 = 1 " .$param;
return $sql;
}
//midi以外検索
function sql_get_original_othermidi($param){
$sql = "select id,ジャンル,音楽シリアルNo,投稿者ID,曲名,ファイルパス,テキストファイルパス,容量,感想Lv,コメント,更新者,更新日,更新時刻,リンク切れ区分,削除区分
from music_original_othermidi where not 削除区分 = 1 " .$param;
return $sql;
}
//midi以外検索(外部結合)
function sql_get_original_othermidi_outerjoin($param){
$sql = "select moom.id,moom.ジャンル,moom.音楽シリアルNo,moom.投稿者ID,moom.曲名,moom.ファイルパス,moom.テキストファイルパス,moom.容量,moom.感想Lv,moom.コメント,moom.更新者,moom.更新日,moom.更新時刻,moom.リンク切れ区分,moom.削除区分,cm.投稿者,cm.メールアドレス,cm.URL
from music_original_othermidi moom left outer join contributor_mst cm on moom.投稿者ID
= cm.投稿者ID where not moom.削除区分 = 1 and not cm.削除区分 = 1 " .$param;
return $sql;
}
//ログイン
function sql_login($id,$pass){
$sql = "select id,pass from music_system_login where id = '".$id."'
and pass = '".$pass."'";
return $sql;
}
//投稿者一覧取得
function sql_get_toukousya($param){
$sql = "select 投稿者ID,投稿者,メールアドレス,URL,更新者,更新日,更新時刻,削除区分 from contributor_mst
where not 削除区分 = 1" .$param;
return $sql;
}
//投稿者全項目insert(削除区分は除く)
function sql_insert_toukousya($toukousyaid,$toukousyaname,$mailaddress,$url,$kousinsya){
$sql = "insert into contributor_mst (投稿者ID,投稿者,メールアドレス,URL,更新者,更新日,更新時刻,削除区分)
values ('".$toukousyaid."','".$toukousyaname."','".$mailaddress."','".$url."','".$kousinsya."',current_date,current_time,0)";
return $sql;
}
//投稿者IDのMAX取得:削除区分の有無に限らずMAXを取得。登録者IDは削除区分があっても重複を行わせない
function sql_toukousya_id_max(){
$sql = "select MAX(投稿者ID) as max_id from contributor_mst";
return $sql;
}
?>
<?php /// 2004.7.23 Makoto Yasuda Create /// ?>
<?php
//オリジナル音楽の総数(MIDI)を求める
function music_sum_original_midi($con){
$sql = sql_get_sum_music_original_midi();
$rs_array = sql_run($con,$sql);
$res = $rs_array[0];
while($row=mysql_fetch_array($res)){
$count = $row["count"];
}
return $count;
}
//オリジナル音楽の総数(MIDI以外)を求める
function music_sum_original_midiother($con){
$sql = sql_get_sum_music_original_midiother();
$rs_array = sql_run($con,$sql);
$res = $rs_array[0];
while($row=mysql_fetch_array($res)){
$count = $row["count"];
}
return $count;
}
?>
— posted by midilin @ 12:00AM
| Comment (0)
| TrackBack (1)
最近のコメント