Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Обращение по неправильному адресу (https://forum.antichat.xyz/showthread.php?t=73335)

serg-php 10.06.2008 20:53

Обращение по неправильному адресу
 
Имею функцию:

Код:

function ShowDropDownCategoryList( $cat, $name = "cat", $f_opt = "", $hide_id = 0, $onCh = "", $fset = "_ALL_" )
{
        global $hwJsCats;
        global $db;
        $page = ( boolean )$_GET['page'];
        $is_ams_page = ( $page == "add" || $page == "modify" || $page == "search" ) && PHP_SELF_BASE == "index.php";
        if ( EN_CAT_MULTI && ( $is_ams_page || $EN_CAT_MULTI ) )
        {
                return showdropdownmulticategorylist( $cat, $fset, $hide_id );
        }
        $SEL = array( );
        if ( is_array( $cat ) )
        {
                foreach ( $cat as $v )
                {
                        $SEL[$v] = 1;
                }
        }
        else
        {
                $SEL[$cat] = 1;
        }
        include_once( SITE_PATH."inc/class.categ_tree.php" );
        $o_cat =& new HawkCategory( TBL_CAT );
        $o_cat->CAT_ORDER = "c.weight DESC,name";
        $o_cat->CAT_F = "fset";
        if ( EN_FSETS && $fset != "_ALL_" )
        {
                $o_cat['SQL_CAT'] .= " AND fset='{$fset}'";
        }
        if ( $hide_id )
        {
                if ( !is_array( $hide_id ) )
                {
                        $hide_id = array(
                                $hide_id
                        );
                }
                $hide_id = array_map( "intval", $hide_id );
                $hide_id = $db->one_col_array( "SELECT id FROM ".TBL_CAT." WHERE id IN(".implode( ",", $hide_id ).")" );
                if ( $hide_id )
                {
                        $o_cat['SQL_CAT'] .= " AND c.id NOT IN(".get_daughter_cats( $hide_id ).")";
                }
        }
        if ( defined( "TBL_CAT_EXTRA" ) && !defined( "ADMIN_AREA" ) && $is_ams_page && ( $page == "add" || $page == "modify" ) )
        {
                $no_ids = $db->one_col_array( "SELECT cid FROM ".TBL_CAT_EXTRA." WHERE type=\"H\"" );
                if ( $no_ids )
                {
                        $o_cat['SQL_CAT'] .= " AND c.id NOT IN(".implode( ",", $no_ids ).")";
                }
                unset( $no_ids );
        }
        $a_v = $o_cat->Get_CatFullPaths_Array( );
        $cats = "";
        $cnt = count( $a_v );
        $i = 0;
        for ( ;        $i < $cnt;        ++$i        )
        {
                $v = $a_v[$i];
                $cats .= "<OPTION ".( $v['pid'] ? "" : "class=root " )."VALUE=".$v['id'];
                if ( isset( $SEL[$v['id']] ) )
                {
                        $cats .= " SELECTED";
                }
                $cats .= ">".$v['cat_path']."\n";
        }
        $hwJsCats = "";
        if ( EN_FSETS && $fset == "_ALL_" )
        {
                $A_FSET = array( );
                reset( $o_cat->CAT_FDATA );
                while ( list( $_id, $_fs ) = each( $o_cat->CAT_FDATA ) )
                {
                        $A_FSET[$_fs['fset']][] = $_id;
                }
                foreach ( $A_FSET as $_fs => $v )
                {
                        $hwJsCats .= "\"|".implode( "|", $v )."|\",";
                }
                if ( $hwJsCats )
                {
                        $hwJsCats = substr( $hwJsCats, 0, -1 );
                }
        }
        return "<select name=".$name." ".$onCh.">".$f_opt.$cats."\n</select>";
}

Запускаю, получаю ответ Fatal error: Cannot use object of type HawkCategory as array in Y:\home\localhost\www\mysite.com\inc\lib.inc.php on line 400


Эта строка :
Код:

$o_cat['SQL_CAT'] .= " AND fset='{$fset}'";
Что с ней не так - не пойму!

NOmeR1 10.06.2008 21:26

Цитата:

Что с ней не так - не пойму!
Ты используешь объект как массив. Как исправить - трудно сказать, одной функции не достаточно.


Время: 07:03