True - I changed to use the buit-in functions - ie save()  but I still
have the same problem.  The problem is that the line "$household_id =
$this->Household->field("id", $match_userid);" doesn't always issue
it's underlying SQL SELECT `Household`.`id` FROM `households` AS
`Household` WHERE `Household`.`userid` = '115603'  statement - it
seems to assume that id is already set correctly or something....  Can
you please explain this behavior?  I've tried inserting a "$this-
>Household->create()"  prior to that statement to re-initialize
things, but that seems to have no effect on this behavior....

Latest controller code:

        function process_csv_file()
        {
                $this->pageTitle = 'Process CSV File';
                $checkFileFields = Array ( "id", "Item", "Qty", "Household", 
"HHID",
"FirstName", "LastName", "UserID", "Processed", "SchoolLocation",
"HouseholdEmail", "Address1", "Address2", "City", "State", "Zip",
"REFERENCE#2" );
                if (!empty($this->params['form'])) {
                $file_handle = fopen($this->params['form']['File']
['tmp_name'],"r");
                        $label_fields = fgetcsv ($file_handle);
                        $last_household_id = null;
                        if ($checkFileFields == $label_fields) {
                                $last_processed_student = null;
                                $current_order_id = null;
                                while (!feof($file_handle)) {
                                        $csv_fields = fgetcsv ($file_handle);
                                        /* Remember who we are processing - one 
order per student */
                                        $first_name = $csv_fields[5];
                                        $last_name = $csv_fields[6];
                                        $check_name = $first_name . ' ' . 
$last_name;
                                        /* Process the households db part. */
                                        $this_userid = $csv_fields[7];
                                        $match_userid = "Household.userid = '" 
. $this_userid . "'";
                                        $household_id = 
$this->Household->field("id", $match_userid);
                                        if (($household_id) || 
($this->Household->exists())) {
                                                /* Nothing to do - already have 
household id */
                                        } else {
                                                
$this->data['Household']['last_name'] = $last_name;
                                                
$this->data['Household']['HHID'] = $csv_fields[4];
                                                
$this->data['Household']['userid'] = $this_userid;
                                                
$this->data['Household']['email'] = $csv_fields[10];
                                                
$this->data['Household']['address_1'] = $csv_fields[11];
                                                
$this->data['Household']['address_2'] = $csv_fields[12];
                                                
$this->data['Household']['city'] = $csv_fields[13];
                                                
$this->data['Household']['state'] = $csv_fields[14];
                                                
$this->data['Household']['zipcode'] = $csv_fields[15];
                                                $this->Household->save( 
$this->data);
                                                $household_id = 
$this->Household->getLastInsertID();
                                        }
                                        print_r($household_id);
                                        print_r($this->Household->id);
                                        /* Process the students db part. */
                                        $match_student_name = 
"Student.first_name = '$first_name' AND
Student.last_name = '$last_name' ";
                                        $student_id = 
$this->Student->field("id", $match_student_name);
                                        if (($student_id) || 
($this->Student->exists())) {
                                                /* Nothing to do - already have 
student id */
                                        } else {
                                                
$this->data['Student']['first_name'] = $first_name;
                                                
$this->data['Student']['last_name'] = $last_name;
                                                
$this->data['Student']['household_id'] = $household_id;
                                                
$this->data['Student']['school_location'] = $csv_fields[9];
                                                $this->Student->save( 
$this->data);
                                                $student_id = 
$this->Student->getLastInsertID();
                                        }
                                        print_r($student_id);

                                        $csv_records[] = $csv_fields;
                                }
                                fclose($file_handle);
                        } else {
                                echo "Mismatched File";
                        }
                }
                $this->set('csv_records', $csv_records);
        }

Latest Model:

class Household extends AppModel
{
        var $name = 'Household';
}

SQL output:
2       DESCRIBE `orders`
3       DESCRIBE `order_items`
4       DESCRIBE `households`
5       DESCRIBE `students`
6       DESCRIBE `products`
7       SELECT `Household`.`id` FROM `households` AS `Household` WHERE
`Household`.`userid` = '115603' LIMIT 1
8       INSERT INTO `households`
(`last_name`,`HHID`,`userid`,`email`,`address_1`,`city`,`state`,`zipcode`)
VALUES ('Miller',14821,'115603','[EMAIL PROTECTED]','123 Main
St','Laveen','AZ','85339')
9       SELECT LAST_INSERT_ID() AS insertID
10      SELECT `Student`.`id` FROM `students` AS `Student` WHERE
`Student`.`first_name` = 'Bill' AND `Student`.`last_name` = 'Miller'
LIMIT 1
11      INSERT INTO `students`
(`first_name`,`last_name`,`household_id`,`school_location`) VALUES
('Bill','Miller',1,'ACA')
12      SELECT LAST_INSERT_ID() AS insertID
13      SELECT `Household`.`id` FROM `households` AS `Household` WHERE
`Household`.`userid` = '126448' LIMIT 1
14      SELECT COUNT(id) AS count FROM `households` WHERE `id` = 1
15      SELECT `Student`.`id` FROM `students` AS `Student` WHERE
`Student`.`first_name` = 'John' AND `Student`.`last_name` = 'Wilson'
LIMIT 1
16      SELECT COUNT(id) AS count FROM `students` WHERE `id` = 1
17      SELECT `Household`.`id` FROM `households` AS `Household` WHERE
`Household`.`userid` = '136285' LIMIT 1
18      SELECT COUNT(id) AS count FROM `households` WHERE `id` = 1
19      SELECT `Student`.`id` FROM `students` AS `Student` WHERE
`Student`.`first_name` = 'Jonathan' AND `Student`.`last_name` =
'Bradford' LIMIT 1
20      SELECT COUNT(id) AS count FROM `students` WHERE `id` = 1
21      SELECT COUNT(id) AS count FROM `households` WHERE `id` = 1
22      SELECT COUNT(id) AS count FROM `students` WHERE `id` = 1
23      SELECT COUNT(id) AS count FROM `households` WHERE `id` = 1
24      SELECT COUNT(id) AS count FROM `students` WHERE `id` = 1
25      SELECT COUNT(id) AS count FROM `households` WHERE `id` = 1
26      SELECT COUNT(id) AS count FROM `students` WHERE `id` = 1
27      SELECT COUNT(id) AS count FROM `households` WHERE `id` = 1
28      SELECT COUNT(id) AS count FROM `students` WHERE `id` = 1
29      SELECT COUNT(id) AS count FROM `households` WHERE `id` = 1
30      SELECT COUNT(id) AS count FROM `students` WHERE `id` = 1
31      SELECT `Household`.`id` FROM `households` AS `Household` WHERE
`Household`.`userid` = '144970' LIMIT 1
32      SELECT COUNT(id) AS count FROM `households` WHERE `id` = 1
33      SELECT `Student`.`id` FROM `students` AS `Student` WHERE
`Student`.`first_name` = 'Paula' AND `Student`.`last_name` = 'Rondo'
LIMIT 1
34      SELECT COUNT(id) AS count FROM `students` WHERE `id` = 1
35      SELECT COUNT(id) AS count FROM `households` WHERE `id` = 1
36      SELECT COUNT(id) AS count FROM `students` WHERE `id` = 1


On Aug 9, 7:03 am, "Chris Hartjes" <[EMAIL PROTECTED]> wrote:
> On 8/8/07, phalvrson <[EMAIL PROTECTED]> wrote:
>
>
>
> > The Household Model:
>
> > class Household extends AppModel
> > {
> >         var $name = 'Household';
> >         /* Creates new record in households and returns it's ID */
> >         function createRecord ($last_name, $HHID, $userid, $email,
> > $address_1, $address_2, $city, $state, $zipcode)
> >         {
> >                 $execString = "INSERT households SET ";
> >                 $execString .= " last_name = '" . $last_name . "',";
> >                 $execString .= " HHID = '" . $HHID . "',";
> >                 $execString .= " userid = '" . $userid . "',";
> >                 $execString .= " email = '" . $email . "',";
> >                 $execString .= " address_1 = '" . $address_1 . "',";
> >                 $execString .= " address_2 = '" . $address_2 . "',";
> >                 $execString .= " city = '" . $city . "',";
> >                 $execString .= " state = '" . $state . "',";
> >                 $execString .= " zipcode = '" . $zipcode . "'";
> >                 $this->execute($execString);
> >                 return;
> >         }
> > }
>
> Why aren't you using the built-in Model functions?  For what you are
> doing there is no need for custom SQL queries.
>
> --
> Chris Hartjes
> Senior Developer
> Cake Development Corporation
>
> My motto for 2007:  "Just build it, damnit!"
>
> @TheBallpark -http://www.littlehart.net/attheballpark
> @TheKeyboard -http://www.littlehart.net/atthekeyboard


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to