Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 来自SQL列的一维数组结果_Php_Sql_Zend Framework_Db2 - Fatal编程技术网

Php 来自SQL列的一维数组结果

Php 来自SQL列的一维数组结果,php,sql,zend-framework,db2,Php,Sql,Zend Framework,Db2,假设我有这个查询,我得到以下结果: SELECT col FROM table 是否有一些SQL语句可用于从相同的数据中获取: array(2) { 0 => array(1){ "COL"=>"value1" }, 1 => array(1){ "COL"=>"value2" } } 我正在使用zend框架和db2。如果不能通过SQL完成,那么可以通过Zend完成吗 谢谢 编辑:我应该澄清一下,我可以用循环或函数来完成。我只是想知道是否有一种内置的方法可以节省几行代

假设我有这个查询,我得到以下结果:

SELECT col FROM table
是否有一些SQL语句可用于从相同的数据中获取:

array(2) {
0 => array(1){
"COL"=>"value1"
},
1 => array(1){
"COL"=>"value2"
}
}
我正在使用zend框架和db2。如果不能通过SQL完成,那么可以通过Zend完成吗

谢谢


编辑:我应该澄清一下,我可以用循环或函数来完成。我只是想知道是否有一种内置的方法可以节省几行代码,让自己成为一个漂亮的smartpants。

试试这样的自定义功能:-

array(2) {
0=>"value1",
1=>"value2"
}

尝试以下自定义函数:-

array(2) {
0=>"value1",
1=>"value2"
}
我是这样做的:

在我的模型中:

function myfuntion($array) { 
  if (!is_array($array)) { 
     return FALSE; 
   } 
 $result = array(); 
 foreach ($array as $key => $value) { 
  if (is_array($value)) { 
  $result = array_merge($result, myfuntion($value)); 
   } 
   else { 
   $result[$key] = $value; 
  } 
 } 
return $result; 
 } 
在我的控制器中:

public function getRecords() {
$select = $this->select();

return $this->fetchAll($select);
}
我是这样做的:

在我的模型中:

function myfuntion($array) { 
  if (!is_array($array)) { 
     return FALSE; 
   } 
 $result = array(); 
 foreach ($array as $key => $value) { 
  if (is_array($value)) { 
  $result = array_merge($result, myfuntion($value)); 
   } 
   else { 
   $result[$key] = $value; 
  } 
 } 
return $result; 
 } 
在我的控制器中:

public function getRecords() {
$select = $this->select();

return $this->fetchAll($select);
}

我认为最简单的方法是:

$records = $mdl->getRecords();
$recordsArray = $records->toArray();
然后在视图内部:这取决于函数重新启动的内容: 案例:其fetchAll:

 public function my_function() 
   { 

      $db = Zend_Db_Table::getDefaultAdapter();
      $results = $db->fetchAll("SELECT * FROM my_table");
      /* if you want only one row, do something like this*/
      /* $results = $db->fetchRow("SELECT * FROM my_table") */
      return $results;
    }
/* Then maybe in your controller you can call the function 
and */
$results=my_function();
/*make values avelaible to the view*/
$this->view->$results=$results
案例:它的fetchRow:不需要使用foreach。
希望有帮助。

我认为最简单的方法是:

$records = $mdl->getRecords();
$recordsArray = $records->toArray();
然后在视图内部:这取决于函数重新启动的内容: 案例:其fetchAll:

 public function my_function() 
   { 

      $db = Zend_Db_Table::getDefaultAdapter();
      $results = $db->fetchAll("SELECT * FROM my_table");
      /* if you want only one row, do something like this*/
      /* $results = $db->fetchRow("SELECT * FROM my_table") */
      return $results;
    }
/* Then maybe in your controller you can call the function 
and */
$results=my_function();
/*make values avelaible to the view*/
$this->view->$results=$results
案例:它的fetchRow:不需要使用foreach。 我希望它能有所帮助。

您可以尝试fetchPairs方法。这可能就是你想要的,至少在有限的范围内

fetchPairs方法返回键值对数组中的数据, 作为一个关联数组,每行有一个条目。关键是 关联数组取自 选择查询。该值取自返回的第二列 选择查询。查询返回的任何其他列都是 丢弃

您还可以尝试将fetch方法设置为Zend_Db::fetch_COLUMN

Zend_Db::FETCH_COLUMN:返回值数组中的数据。价值 每个数组都是结果集的一列返回的值。通过 默认情况下,这是第一列,索引为0

您可以尝试fetchPairs方法。这可能就是你想要的,至少在有限的范围内

fetchPairs方法返回键值对数组中的数据, 作为一个关联数组,每行有一个条目。关键是 关联数组取自 选择查询。该值取自返回的第二列 选择查询。查询返回的任何其他列都是 丢弃

您还可以尝试将fetch方法设置为Zend_Db::fetch_COLUMN

Zend_Db::FETCH_COLUMN:返回值数组中的数据。价值 每个数组都是结果集的一列返回的值。通过 默认情况下,这是第一列,索引为0


不为我工作。说我的结果不是对象。我正在使用:$result=$db->fetchAll$query,array$condition;然后返回$result->toArray;不为我工作。说我的结果不是对象。我正在使用:$result=$db->fetchAll$query,array$condition;然后返回$result->toArray;您使用的是哪个DB2平台?DB2 for i、LUW或z/OS?您使用的是哪种DB2平台?DB2 for i、LUW还是z/OS?