mscupdate2
戻る
#!C:/perl/bin/perl
######################################
# mscupdate2.pl
######################################
use strict;
use DBI;
use CGI qw/:standard/;
use HTML::Template;
my ( %t, @rec, @loop, $p_ref );
$t{q} = new CGI;
$t{enq1_id} = $t{q}->param("enq1_id"); # enq1のID
$t{id2} = $t{q}->param("id2"); # パーツのID
$t{main_type1id} = $t{q}->param("main_type1id"); # 主機タイプのID
# TMPLファイルを指定
$t{template} = HTML::Template->new(filename => 'mscupdate2.htm');
# データベースにリンク
$t{dsn} = "DBI:mysql:host=localhost;database=cookbook";
$t{dbh} = DBI->connect($t{dsn}, "cbuser", "cbpass") or die "Cannot connect to server\n";
$t{dbh}->do("SET NAMES utf8");
if(!$t{dbh}){
print "SQL read ERROR!\n";
exit;
}
if ( $t{id2} != 0 ) {
$$p_ref{list1} = $t{dbh}->selectrow_array("select type1id from enq1 where id = $t{enq1_id}");
$$p_ref{list2} = $t{dbh}->selectrow_array("select partsid from enq1 where id = $t{enq1_id}");
$$p_ref{main_type1id} = $t{main_type1id};
$$p_ref{id2} = $t{id2};
($p_ref) = parts($p_ref);
$t{sql} = 'UPDATE enq1 set ' . 'partsid' . ' = "';
$t{sql} .= $$p_ref{list2new} . '" where id = ';
$t{sql} .= $t{enq1_id};
$t{DO} = $t{dbh}->do($t{sql});
}
# データベースを切断
$t{dbh}->disconnect;
$t{template}->param(enq1_id => $t{enq1_id});
$t{template}->param(id2 => $t{id2});
$t{template}->param(main_type1id => $t{main_type1id});
$t{template}->param(DO => $t{DO});
$t{template}->param(sql => $t{sql});
if ( $t{DO} ) {
$t{template}->param(OK1 => 1);
$t{template}->param(OK2 => 0);
} else {
$t{template}->param(OK1 => 0);
$t{template}->param(OK2 => 1);
}
# send the obligatory Content-Type and print the template output
print $t{template}->output;
# パーツの組合せ処理
sub parts {
my($p_ref) = @_;
my(%t,$n);
$t{list1} = $$p_ref{list1};
$t{list2} = $$p_ref{list2};
$t{list2_1} = $$p_ref{main_type1id};
$t{list2_2} = $$p_ref{id2};
if ( $t{list1} =~ /$t{list2_1}/ ) {
@{ $t{list1s} } = split(/==/,$t{list1});
for $n ( 0 .. $#{ $t{list1s} }) {
if ( $t{list1s}[$n] == $t{list2_1} ) {
$t{NO} = $n;
}
}
} else {
print "NO match!\n";
}
@{ $t{list2news} } = ();
if ( $t{list2} == 0 ) { # パーツが存在しない場合
$t{list2new} = $t{list2_2};
} else {
@{ $t{list2s} } = split(/==/,$t{list2});
$t{list2new} = '';
if ( $t{NO} > $#{ $t{list2s} } ) {
$t{list2new} = $t{list2} . '==' . $t{list2_2};
} else {
for $n ( 0 .. $#{ $t{list2s} } ) {
if ( $n == $t{NO} ) {
$t{list2new1} = $t{list2s}[$n] . '=' . $t{list2_2};
push(@{ $t{list2news} },$t{list2new1});
} else {
push(@{ $t{list2news} },$t{list2s}[$n]);
}
}
}
}
if ( $t{list2new} == 0 ) {
$t{list2new} = join('==',@{ $t{list2news} });
}
$$p_ref{list2new} = $t{list2new};
return($p_ref);
}
1;
-------------------------------------------------------------------------------
mscupdate2
mscupdate2
http://localhost/scripts/mscenq1_p.pl
ENQ_ID==>
id2==>
main_type1id==>
DO==>
sql==>
成功しました。上のmscenq1_p.plをクリックしてください。
選択していません。上の「戻る」をクリックしてください。
戻る