From 0b1efe21447094e08a99d68704dc8947b40e989a Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Sat, 18 Sep 2010 00:28:17 -0600 Subject: [PATCH] fixed sql table creation file and import script --- bin/import_ward_data | 17 ++++++++++------- sql/tc.sql | 6 ++---- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/bin/import_ward_data b/bin/import_ward_data index 501f963..6703836 100755 --- a/bin/import_ward_data +++ b/bin/import_ward_data @@ -157,7 +157,7 @@ sub update_tc_individual_table if($rows == 0) { # No existing records found for this individual, make a new entry print " Adding new individual: $individual_name\n"; - $sth = $dbh->prepare("insert into tc_individual values (NULL,'$id',\"$individual_name\",'$address','$phone','$email','$hhposition','$priesthood',NULL,$attending,1)"); + $sth = $dbh->prepare("insert into tc_individual values (NULL,'$id',\"$individual_name\",'$address','$phone','$email','$hhposition','$priesthood','',NULL,$attending,1)"); $sth->execute or die "-E- DB error: $DBI::errstr\n"; } elsif($rows == 1) { # An existing record was found for this individual, update it @@ -346,9 +346,12 @@ sub update_tc_family_table # find head of households in tc_individual $sth = $dbh->prepare("SELECT * FROM tc_individual WHERE hh_position='Head of Household' and valid=1"); $sth->execute or die "-E- DB error: $DBI::errstr\n"; - while ($sqlhashref = $sth->fetchrow_hashref) { - $individual = $sqlhashref{individual}; - $name = $sqlhashref{name}; + my @individual_data = (); + while ($sqlhashref = $sth->fetchrow_hashref) { push(@individual_data, $sqlhashref); } + my $individual_count = scalar @individual_data; + for($i=0;$i<$individual_count;$i++) { + $individual = $individual_data[$i]{'individual'}; + $name = $individual_data[$i]{'name'}; $sth2 = $dbh->prepare("SELECT * FROM tc_family WHERE individual='$individual'"); $sth2->execute or die "-E- DB error: $DBI::errstr\n"; @@ -360,12 +363,12 @@ sub update_tc_family_table if($rows == 0) { # No existing records found for this family, make a new entry print " Adding new Family: $name\n"; - $sth2 = $dbh->prepare("insert into tc_family values (NULL,'$individual','0',NULL,1)"); + $sth2 = $dbh->prepare("INSERT INTO tc_family VALUES (NULL,'$individual','0',NULL,1)"); $sth2->execute or die "-E- DB error: $DBI::errstr\n"; } elsif($rows == 1) { # An existing record was found for this family, update it print " Updating existing family: $name\n"; - $sth2 = $dbh->prepare("update tc_family set valid='1' where individual=$individual'"); + $sth2 = $dbh->prepare("UPDATE tc_family SET valid='1' WHERE individual='$individual'"); $sth2->execute or die "-E- DB error: $DBI::errstr\n"; } else { # More than one record was found. Error! This shouldn't happen. @@ -432,7 +435,7 @@ sub update_tc_visit_table print " Updating visit data: $family_name\n"; # get family id from tc_family - $sth = $dbh->prepare("select * from tc_family where name=\"$family_name\" and valid=1"); + $sth = $dbh->prepare("SELECT * FROM tc_family AS tf JOIN tc_individual AS ti WHERE tf.individual=ti.individual AND ti.name=\"$family_name\" AND tf.valid=1"); $sth->execute or die "-E- DB error: $DBI::errstr\n"; my @family_data = (); while($sqlhashref = $sth->fetchrow_hashref) { push(@family_data, $sqlhashref); } diff --git a/sql/tc.sql b/sql/tc.sql index 687cf71..2fedef1 100644 --- a/sql/tc.sql +++ b/sql/tc.sql @@ -74,6 +74,7 @@ CREATE TABLE `tc_calling` ( `organization` varchar(30) default NULL, `position` varchar(30) default NULL, `sustained` varchar(30) default NULL, + KEY `name` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- @@ -124,9 +125,6 @@ CREATE TABLE `tc_individual` ( -- CREATE TABLE `tc_family` ( `family` int(16) unsigned NOT NULL auto_increment, - `hofh_id` int(16) unsigned NOT NULL default '0', - `name` varchar(30) NOT NULL default '', - `name_id` varchar(30) NOT NULL default '', `individual` int(16) unsigned default '0', `companionship` int(16) unsigned default NULL, `scheduling_priority` int(16) unsigned default NULL, @@ -153,7 +151,7 @@ CREATE TABLE `tc_interview` ( `date` date default NULL, `notes` text, `interview_type` enum('hti','ppi') NOT NULL DEFAULT 'hti', - PRIMARY KEY (`ppi`) + PRIMARY KEY (`interview`) ) ENGINE=MyISAM AUTO_INCREMENT=248 DEFAULT CHARSET=latin1; -- 2.34.1