Unbekannt 发表于 2009-3-11 16:25

如何逐一返回未知动态数组的键名 PHP

本帖最后由 Unbekannt 于 2009-3-11 17:38 编辑

哈哈哈, 在一壶酒的指点下我已经成功返回了一个动态数组。。。随之而来的是另一个问题。。。

我如何才能一一读出这个动态数组的键名呢。。。在getDocList()方法中, $field的值好像不对阿。。。

==============这个是我返回来的动态数组=============

if($_SERVER['REQUEST_METHOD']=='POST')
{
        if($_POST['lastname'])
                $data['F_BDT_AUTOR'] = $_POST['lastname'];

        if($_POST['othername'])
                $data['F_BDT_F_AUTOR'] = $_POST['othername'];

        if($_POST['title'])
                $data['F_BDT_TITEL'] = $_POST['title'];

        if($_POST['utitle'])
                $data['F_BDT_UTITEL'] = $_POST['utitle'];

        if($_POST['pagenr'])
                $data['F_BDT_PAGENR'] = $_POST['pagenr'];

        if($_POST['year'])
                $data['F_BDT_YEAR'] = $_POST['year'];

        if($_POST['location'])
                $data['F_BDT_LOC'] = $_POST['location'];

        if($_POST['s01'])
                $data['F_BDT_IS_S01'] = 1;

        if($_POST['s02'])
                $data['F_BDT_IS_S02'] = 1;
       
        if($_POST['s03'])
                $data['F_BDT_IS_S03'] = 1;
       
        if($_POST['s04'])
                $data['F_BDT_IS_S04'] = 1;
       
        if($_POST['s05'])
                $data['F_BDT_IS_S05'] = 1;
       
        if($_POST['s06'])
                $data['F_BDT_IS_S06'] = 1;
       
        if($_POST['s07'])
                $data['F_BDT_IS_S07'] = 1;
       
        if($_POST['s08'])
                $data['F_BDT_IS_S08'] = 1;
       
        if($_POST['s09'])
                $data['F_BDT_IS_S09'] = 1;
       
        if($_POST['s10'])
                $data['F_BDT_IS_S10'] = 1;
       
        if($_POST['s11'])
                $data['F_BDT_IS_S11'] = 1;
       
        if($_POST['s12'])
                $data['F_BDT_IS_S12'] = 1;
       
        if($_POST['s13'])
                $data['F_BDT_IS_S13'] = 1;
       
        if($_POST['s14'])
                $data['F_BDT_IS_S14'] = 1;
       
        if($_POST['s15'])
                $data['F_BDT_IS_S15'] = 1;
       
        if($_POST['s16'])
                $data['F_BDT_IS_S16'] = 1;
       
        if($_POST['s17'])
                $data['F_BDT_IS_S17'] = 1;
       
        if($_POST['s18'])
                $data['F_BDT_IS_S18'] = 1;
       
        if($_POST['s19'])
                $data['F_BDT_IS_S19'] = 1;
       
        if($_POST['s20'])
                $data['F_BDT_IS_S20'] = 1;

        if($_POST['checkpdf'])
                $data['F_BDT_PDF_YES'] = 1;
       
        if($_POST['checkcontent'])
                $data['F_BDT_CONTENT_YES'] = 1;
}

================这个是查询SQL的方法=================

        public function GetDocList($page=1,$pagesize,$data,$isdel=0)
        {
                $start = ($page-1)*$pagesize;
                $sql_fields = "*";
                $sql_from = "EE_BOOKS_DETAIL";
                $sql_where = " ";
                if($isdel)
                {
                        $sql_where = "F_BDT_IS_DEL = 1";
                }
                if($data)
                {                       
                        $fields = implode(',',array_keys($data));
                        $i = 0;
                        $sql = "SELECT * FROM $sql_from WHERE";
                        foreach($data as $key=>$val)
                        {
                                $value .= "'%".$val."%'";
                                if($i<count($data)-1)
                                        $field = $fields [ i ]; //这个方括号 i 是论坛代码, 本来没有空格。。
                                $sql .= " ".$field." LIKE ".$value." AND";
                                $i++;
                       
                        }

                        $sql_order = "F_ID DESC";
                        $sql .= " ORDER BY $sql_order LIMIT $start, $pagesize";
                        return $this->select($sql);
                }
        }

Unbekannt 发表于 2009-3-12 10:59

$field当然不对,因为$fields不是array.

www.php.net/implode

不要犯低级错误啊。。。
─壶酒 发表于 2009-3-11 21:36 http://www.dolc.de/forum/images/common/back.gif


啊~~~果然是低级错误。。。没注意是不是数组。。。原来返回字符串所以不行, 刚刚已经改成数组了, 又响应改了一下循环, 现在已经可以了。。。哈哈哈哈~~~多谢了。。。
页: [1]
查看完整版本: 如何逐一返回未知动态数组的键名 PHP