MySQL操作程序四

返回

不要的程序最好马上清除掉!

$t{price1s}[2]为零,程序无法读下去 # price1的处理 sub get_price1 { my($pref,$self) = @_; my(%t,$n); @{ $t{prices} } = split(/==/,$$pref{price10}); for $n ( 0 .. $#{ $t{prices} } ) { $t{prices1} = $t{prices}[$n]; @{ $t{price1s} } = split(/=/,$t{prices1}); @{ $t{price1} } = @{ $t{price1s} }[0..1]; $t{money1} = $self->dbh->selectrow_array("SELECT English FROM money WHERE id = $t{price1s}[2]"); push(@{ $t{price1} },$t{money1}); push(@{ $t{price1} },$t{price1s}[3]); $t{maker1} = $self->dbh->selectrow_array("SELECT company FROM makers WHERE id = $t{price1s}[4]"); push(@{ $t{price1} },$t{maker1}); $t{price11} = join('/',@{ $t{price1} }); $$pref{price1} .= '<OPTION VALUE="">' . $t{price11} . '</OPTION>'; } return($pref,$self); } # price2的处理 sub get_price2 { my($pref,$self) = @_; my(%t,$n); @{ $t{prices} } = split(/==/,$$pref{price20}); for $n ( 0 .. $#{ $t{prices} } ) { $t{prices2} = $t{prices}[$n]; @{ $t{price2s} } = split(/=/,$t{prices2}); @{ $t{price2} } = @{ $t{price2s} }[0..1]; $t{money1} = $self->dbh->selectrow_array("SELECT English FROM money WHERE id = $t{price2s}[2]"); push(@{ $t{price2} },$t{money1}); push(@{ $t{price2} },$t{price2s}[3]); $t{maker1} = $self->dbh->selectrow_array("SELECT company FROM makers WHERE id = $t{price2s}[4]"); push(@{ $t{price2} },$t{maker1}); $t{price21} = join('/',@{ $t{price2} }); $$pref{price2} .= '<OPTION VALUE="">' . $t{price21} . '</OPTION>'; } return($pref,$self); }

Putting Commas in Numbers

$a = 10000000.33; print "a=$a\n"; $a = commify($a); print "a=$a\n"; sub commify { my $text = reverse $_[0]; $text =~ s/(\d\d\d)(?=\d)(?!\d*\.)/$1,/g; return scalar reverse $text; } a=10000000.33 a=10,000,000.33

判断是否是正的整数

@{ $t{list} } = qw/3.3 -3 2 55.2/; for $n ( 0 .. $#{ $t{list} } ) { $val = $t{list}[$n]; $valid = is_positive_integer($val); if ( $valid ) { print "$val is valid\n"; } else { print "$val is not valid\n"; } } sub is_positive_integer { my $s = shift; return ( $s =~ /^\+?\d+$/ && $s > 0 ); } 3.3 is not valid -3 is not valid 2 is valid 55.2 is not valid

一些旧程序

if ( $t{discount} ne 'D' ) { @{ $t{dd} } = split(/=/,$t{discount}); } else { for $n ( 1 .. $t{pl2} ) { push(@{ $t{dd} },100); } } <th> <form action="" method="post"> <input type="submit" value="Disc2"><br> <input type=text size=3 name="discount0" value="<TMPL_VAR NAME="discount0">"> <input type="hidden" name="id" value=<TMPL_VAR NAME="quo2_id">> <input type="hidden" name="pat" value="discount0"> <input type="hidden" name="rm" value="modequo2"> </form> </th> #---------输入全部一样的discount } elsif ( $t{pat} eq 'discount0' ) { $t{discount0} = $t{q}->param("discount0"); # 取得零件数量 $t{partsid} = $self->dbh->selectrow_array("SELECT partsid FROM enq1 WHERE id = $t{quo2_id}"); $t{pl2} = 0; @{ $t{pl1} } = split(/=/,$t{partsid}); for $n ( 0 .. $#{ $t{pl1} } ) { if ( $t{pl1}[$n] != 0 ) { $t{pl2}++; push(@{ $t{dd} },$t{discount0}); } } # 更新quo2的discount0和discount $t{discount} = join('=',@{ $t{dd} }); $t{sql} = 'UPDATE quo2 set discount0 = "'; $t{sql} .= $t{discount0} . '" where id = '; $t{sql} .= $t{quo2_id}; $t{DO} = $self->dbh->do($t{sql}); $t{sql} = 'UPDATE quo2 set discount = "'; $t{sql} .= $t{discount} . '" where id = '; $t{sql} .= $t{quo2_id}; $t{DO} = $self->dbh->do($t{sql}); # 価格表を更新する @{ $t{ppp} } = (); $t{price0} = $self->dbh->selectrow_array("SELECT price0 FROM quo2 WHERE id = $t{quo2_id}"); $t{percent} = $self->dbh->selectrow_array("SELECT percent FROM quo2 WHERE id = $t{quo2_id}"); @{ $t{prices} } = split(/=/,$t{price0}); @{ $t{pe} } = split(/=/,$t{percent}); for $n ( 0 .. $#{ $t{prices} } ) { $t{ppp1} = int($t{prices}[$n]*$t{dd}[$n]*$t{pe}[$n]/10000); push(@{ $t{ppp} },$t{ppp1}); } $t{price} = join('=',@{ $t{ppp} }); $t{sql} = 'UPDATE quo2 set price = "'; $t{sql} .= $t{price} . '" where id = '; $t{sql} .= $t{quo2_id}; $t{DO} = $self->dbh->do($t{sql}); -------------------------------------------------------------------------------- if ( $t{disc} ne 'D0' ) { @{ $t{ddd0} } = split(/=/,$t{disc}); } else { for $n ( 1 .. $t{pl2} ) { push(@{ $t{ddd0} },100); } } #---------输入全部一样的disc0 } elsif ( $t{pat} eq 'disc0' ) { $t{disc0} = $t{q}->param("disc0"); # 取得零件数量 $t{partsid} = $self->dbh->selectrow_array("SELECT partsid FROM enq1 WHERE id = $t{quo2_id}"); $t{pl2} = 0; @{ $t{pl1} } = split(/=/,$t{partsid}); for $n ( 0 .. $#{ $t{pl1} } ) { if ( $t{pl1}[$n] != 0 ) { $t{pl2}++; push(@{ $t{d0} },$t{disc0}); } } # 更新quo2的disc0和disc $t{disc} = join('=',@{ $t{d0} }); $t{sql} = 'UPDATE quo2 set disc0 = "'; $t{sql} .= $t{disc0} . '" where id = '; $t{sql} .= $t{quo2_id}; $t{DO} = $self->dbh->do($t{sql}); $t{sql} = 'UPDATE quo2 set disc = "'; $t{sql} .= $t{disc} . '" where id = '; $t{sql} .= $t{quo2_id}; $t{DO} = $self->dbh->do($t{sql}); # 価格表を更新する @{ $t{ppp} } = (); $t{price0} = $self->dbh->selectrow_array("SELECT price0 FROM quo2 WHERE id = $t{quo2_id}"); $t{percent} = $self->dbh->selectrow_array("SELECT percent FROM quo2 WHERE id = $t{quo2_id}"); $t{discount} = $self->dbh->selectrow_array("SELECT discount FROM quo2 WHERE id = $t{quo2_id}"); @{ $t{prices} } = split(/=/,$t{price0}); @{ $t{pe} } = split(/=/,$t{percent}); @{ $t{dd} } = split(/=/,$t{discount}); for $n ( 0 .. $#{ $t{prices} } ) { $t{ppp1} = int($t{prices}[$n]*$t{dd}[$n]*$t{pe}[$n]*$t{d0}[$n]/1000000); push(@{ $t{ppp} },$t{ppp1}); } $t{price} = join('=',@{ $t{ppp} }); $t{sql} = 'UPDATE quo2 set price = "'; $t{sql} .= $t{price} . '" where id = '; $t{sql} .= $t{quo2_id}; $t{DO} = $self->dbh->do($t{sql}); <form action="" method="post"> <input type="submit" value="Disc1"><br> <input type=text size=3 name="disc0" value="<TMPL_VAR NAME="disc0">"> <input type="hidden" name="id" value=<TMPL_VAR NAME="quo2_id">> <input type="hidden" name="pat" value="disc0"> <input type="hidden" name="rm" value="modequo2"> </form>
返回