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; ------------------------------------------------------------------------------- <html> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <head><title>mscupdate2</title> <head> <body bgcolor="#fcf5ca"> <h2>mscupdate2</h2> <a href="http://localhost/scripts/mscenq1_p.pl">http://localhost/scripts/mscenq1_p.pl</a><br> <form method="POST" action="mscsearch2.pl"> <input type="submit" value="戻る"> <input type="hidden" name="enq1_id" value="<TMPL_VAR NAME="enq1_id">"> <input type="hidden" name="SEL1" value="<TMPL_VAR NAME="main_type1id">"> </form> <hr> ENQ_ID==><TMPL_VAR NAME="enq1_id"><br> id2==><TMPL_VAR NAME="id2"><br> main_type1id==><TMPL_VAR NAME="main_type1id"><br> <hr> DO==><TMPL_VAR NAME="DO"><br> sql==><TMPL_VAR NAME="sql"><br> <TMPL_IF NAME="OK1"> 成功しました。上のmscenq1_p.plをクリックしてください。 </TMPL_IF> <TMPL_IF NAME="OK2"> 選択していません。上の「戻る」をクリックしてください。 </TMPL_IF> </body> </html>
戻る