Changeset 24 for trunk/lib/Vote/Model/Vote.pm
- Timestamp:
- 03/14/09 14:57:32 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/Vote/Model/Vote.pm
r23 r24 99 99 100 100 keys %attr or return; 101 my @online_f = qw(label start end owner password) 101 102 102 103 my $sth = $self->db->prepare_cached( 103 104 q{update poll set } . 104 join(',', map { qq("$_" = ?) } sort keys %attr) .105 join(',', map { qq("$_" = ?) } grep { exists $attr{$_} } @online_f) . 105 106 q{ where id = ?} 106 107 ); 107 $sth->execute((map { $attr{$_} } sort keys %attr), $voteid)108 $sth->execute((map { $attr{$_} } grep { exists $attr{$_} } @online_f), $voteid) 108 109 or $self->db->rollback; 110 111 # vote settings in settings table 112 foreach my $var (keys %attr) { 113 grep { $var eq $_ } @online_f and next; 114 $self->vote_set_settings($voteid, $var, $attr{$var}); 115 } 116 1 109 117 } 110 118 … … 145 153 my $res = $sth->fetchrow_hashref; 146 154 $sth->finish; 155 if ($res) { 156 my $get = $self->db->prepare_cached( 157 q{select var, val from settings where poll = ?} 158 ); 159 $get->execute($id); 160 while (my $set = $get->fetchrow_hashref) { 161 $res->{$set->{var}} = $set->{val}; 162 } 163 } 147 164 $res 165 } 166 167 sub vote_set_settings { 168 my ($self, $poll, $var, $val) = @_; 169 170 my $upd = $self->db->prepare_cached( 171 q{update settings set val = ? where poll = ? and var = ?} 172 ); 173 174 warn "$val, $poll, $var"; 175 if ($upd->execute($val, $poll, $var) == 0) { 176 my $add = $self->db->prepare_cached( 177 q{insert into settings (poll, var, val) values (?,?,?)} 178 ); 179 180 $add->execute($poll, $var, $val); 181 } 148 182 } 149 183
Note: See TracChangeset
for help on using the changeset viewer.