如何逐一返回未知动态数组的键名 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);
}
} $field当然不对,因为$fields不是array.
www.php.net/implode
不要犯低级错误啊。。。
─壶酒 发表于 2009-3-11 21:36 http://www.dolc.de/forum/images/common/back.gif
啊~~~果然是低级错误。。。没注意是不是数组。。。原来返回字符串所以不行, 刚刚已经改成数组了, 又响应改了一下循环, 现在已经可以了。。。哈哈哈哈~~~多谢了。。。
页:
[1]