[ obiwan @ 09.03.2002. 20:34 ] @
Pozdrav prvo svima !
Moj problem je sledeci,naime, imam obicnu formu tra la la i sada hocu da je upisem u bazu i to tako da se upisujepo nekoliko linija znaci
polje1 | polje2 | polje3 | polje4
polje5 | polje6 | polje7 | polje8

odnosno kada kliknem da posaljem formu cgi scripti hocu da mi upise sve podatke
(ako shatate svaka van cast :))))) mnogo sam konfuzan)
e ja hocu onda kada na primer cekiram samo polja 5.6.7.8 da mi samo njih upise a kada cekiram samo polja 1.2.3.4 da mi samo njih upise a kada cekiram sva polja 1-8 da mi ih upise u dve linije baze kao sto sam pokazao.
E ja sam resio samo delimicno odnosno kada cekiram polja 1.2.3.4 onda je ok jer mi samo upise 1 liniju ali kada cekiram polja 5.6.7.8 on mi upise i prvu liniju i to ovako : |||0 i to me zeza posle.................
evo mog koda a ako neko moze neka mi kaze kako drugacije

&GetFormInput;

$KRSe = $field{'KRSe'} ;
$select = $field{'select'} ;
$kKRSe = $field{'kKRSe'} ;
$rKRSe = $field{'rKRSe'} ;
$KRSeC = $field{'KRSeC'} ;
$bKRSeC = $field{'bKRSeC'} ;
$kKRSeC = $field{'kKRSeC'} ;
$rKRSeC = $field{'rKRSeC'} ;
open (LOGFILE, ">> log2.txt") ;

print LOGFILE "$KRSe\|$select\|$kKRSe\|$rKRSe\n" ;

close (LOGFILE) ;

open (LOGFILE, ">> log2.txt") ;
if ($rKRSeC == 0)
{
close (LOGFILE) ;
}
else
{
print LOGFILE "$KRSeC\|$kKRSeC\|$bKRSeC\|$rKRSeC\n" ;
}

close (LOGFILE) ;

........................tra la la .............ostatak nijke bitan................
pa onda ide kraj

sub GetFormInput {

(*fval) = @_ if @_ ;

local ($buf);
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN,$buf,$ENV{'CONTENT_LENGTH'});
}
else {
$buf=$ENV{'QUERY_STRING'};
}
if ($buf eq "") {
return 0 ;
}
else {
@fval=split(/&/,$buf);
foreach $i (0 .. $#fval){
($name,$val)=split (/=/,$fval[$i],2);
$val=~tr/+/ /;
$val=~ s/%(..)/pack("c",hex($1))/ge;
$name=~tr/+/ /;
$name=~ s/%(..)/pack("c",hex($1))/ge;

if (!defined($field{$name})) {
$field{$name}=$val;
}
else {
$field{$name} .= $val;

#$field{$name} .= ",$val";(original) 163
# $field{$name}=$val; 160
#if you want multi-selects to goto into an array change to:
#$field{$name} .= "\0$val";
}


}
}
return 1;
}

----------------------------------to je to--------------------------------


Unapred vrlo zahvalan

Obi Wan
[ obiwan @ 11.03.2002. 00:54 ] @
Mislim da sam resio
open (LOGFILE, ">> log2.txt") ;
if ($rKRSe == 0) ##znaci ako nije nista upisano ili izmenjeno
{
close (LOGFILE) ;
}
else
{
print LOGFILE "$KRSe\|$select\|$kKRSe\|$rKRSe\n" ;

}

close (LOGFILE) ;
#onda ide drugo otvaranje baze i upisivanje
open (LOGFILE, ">> log2.txt") ;
if ($rKRSeC == 0)
{
close (LOGFILE) ;
}
else
{
print LOGFILE "$KRSeC\|$kKRSeC\|$bKRSeC\|$rKRSeC\n" ;
}

close (LOGFILE) ;

...................
E sada sto me nevira je da li ja moram 2 puta da otvaram bazu ili sve mogu sa jednom petljom da uradim???????????