--- db/prgsrc/dbchgk.pm 2001/11/20 21:33:36 1.7 +++ db/prgsrc/dbchgk.pm 2002/01/13 00:32:12 1.9 @@ -25,9 +25,9 @@ use vars qw(@ISA @EXPORT); @ISA=qw(Exporter); @EXPORT = qw(&getbase &getquestions &closebase &getrow $z &in2out &getall &addnf &out2in &mydo - &getequalto &forbidden &getquestion &checktable &addword2task &addnest &getwordkeys &getflag &addword2task &cformula + &getequalto &forbidden &getquestion &checktable &addword2task &addnest &getwordkeys &getflag &addword2task &updateword2question &knownword &incnf &searchmark &knownnf &getnests - &packword &getnfnumbers &getword2question) ; + &packword &getnfnumbers &getword2question &addauthors) ; my $z; my $qbase; @@ -113,11 +113,42 @@ sub addword2task $qbase -> do("insert into word2question (word,questions) values ($w1,$w2)"); } +sub addauthors +{ + my ($charid,$name,$surname,$questions,$nicks,$forbidden)=@_; + $_=$qbase -> + quote($_) foreach ($charid,$name,$surname,$nicks); + my $kvo=scalar grep {!$$forbidden{$_}} @$questions; +my $query="insert into Authors (CharId,name,surname,QNumber,Nicks) + values ($charid,$name,$surname,".$kvo.",$nicks)"; + + print $query if $debug; + + $qbase -> do($query); + $query="select id from Authors where CharId=$charid"; + print $query if $debug; + my $z= $qbase -> prepare($query); + $z -> execute; + my @ar=$z->fetchrow; + my $id=$ar[0]; + + + +foreach my $q (@{$questions}) +{ + $query="insert into A2Q (Author,Question) + values ($id,$q)"; + print $query if $debug; + $qbase -> do($query) ; +} +} + + sub packword { my ($fieldnumber,$id,$wordnumber)=@_; die "packword: fieldnumber is $fieldnumber! -- id=$id, word=$wordnumber\n" if $fieldnumber>6; - pack("CSC",$fieldnumber,$id,$wordnumber%256) + $r=pack("CSC",$fieldnumber|(($id >> 16) << 4),$id%65536,$wordnumber%256); } sub updateword2question