Pablo,

Thanks for responding. I found out what the problem was. There was an
argument that was empty (i.e. empty string) in the add_cat() method. Thanks
for your help, I really appreciate it.  :)

[snip]
Notice: Undefined index: 0 in
L:\localhost\catalog\catalog_0.1.0\includes\classes\tree.class.php on line
77
[/snip]

It's telling you that $data['0'], which is used twice in your query, is not
a valid index (ie. it doesn't exist) for the $data array.

Why don't you dump the $data array after it is set to see where the problem
is:

$data = $this->get_cat_coord($child);
print_r($data);
die();

Take a look at what comprises the $data array and you should find your
problem.

HTH,

Pablo

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
Sent: Sunday, October 17, 2004 8:31 PM
To: [EMAIL PROTECTED]
Subject: [PHP] Help With Error

Hello Everyone,

I keep getting the following errors in my class and I don't know why. Maybe
something has changed in PHP 5.x that I don't know about? Here are the
errors and the methods of that class:

-----------------------
Notice: Undefined index: 0 in
L:\localhost\catalog\catalog_0.1.0\includes\classes\tree.class.php on line
77

Notice: Undefined index: 0 in
L:\localhost\catalog\catalog_0.1.0\includes\classes\tree.class.php on line
77

Fatal error: Cannot use object of type DB_Error as array in
L:\localhost\catalog\catalog_0.1.0\includes\classes\tree.class.php on line
46
-----------------------


Line 77 is the 5th line of the following function:


-----------------------
    function get_ancestors($child) {
        // get child's lft & rgt values
        $data = $this->get_cat_coord($child);
        // get ancestors of child based on child's lft and rgt values
        $tree = $this->fetch('SELECT * FROM tree WHERE lft <
'.$data['0']['lft'].' AND rgt > '.$data['0']['rgt'].' ORDER BY lft ASC');
        return $tree;
    }
-----------------------


Line 46 is the 3rd line of the following function


-----------------------
    function get_parent($child) {
        $parent = $this->get_ancestors($child);
        $parent = $parent[count($parent)-1];
        if (count($parent) > 0) {
            return $parent;
        } else {
            return 0;
        }
    }
-----------------------


I am calling the following function which calls the other two child
functions above:


-----------------------
    function add_cat($cat, $addAfterCat_name='', $addAfterCat_lft='') {
        if (!$this->exists_in_category($cat, $addAfterCat_name)) {
            $db = $this->dbconnect();
            if ($cat != '' && $addAfterCat_lft != '') {
                $db->query("UPDATE tree SET rgt=rgt+2 WHERE
rgt>".$addAfterCat_lft);
                $db->query("UPDATE tree SET lft=lft+2 WHERE
lft>".$addAfterCat_lft);
                $add_query = "INSERT INTO tree SET lft='";
                $add_query .= $addAfterCat_lft+1;
                $add_query .= "', rgt='";
                $add_query .= $addAfterCat_lft+2;
                $add_query .= "', category='$cat'";
                echo $add_query;
                $db->query($add_query);
                $message = 'Category Added To Tree';
            } elseif ($cat != '' && $addAfterCat_lft == '') {
                $message = 'Please Input A Category To Add';
            } elseif ($cat == '' && $addAfterCat_lft != '') {
                $message = 'Please Choose A Category To Add This Category
To';
            }
        } else {
            $message = 'Category Already Exists In The Parent Category';
        }
        return $message;
    }
-----------------------

What am I doing wrong?

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to