我把这个放入一个表列表中,它的作用是第一个函数填充前三行,然后第二个函数根据第一个函数的匹配填充第四行。函数foreach只返回最后一个数组
public function function1($start = 0, $max = 10, $use_result = false) {
$sql = 'SELECT itemnum, descrip FROM TABLENAME
WHERE itemnum LIKE "__-_____"
AND cms_item_id IS NULL
ORDER BY itemnum ASC
LIMIT ' . (int)$start . ',' . (int)$max .'';
$result = $this->registry->db->query($sql);
$return = array();
while($row = $result->fetch_assoc()) {
$return[] = $row;
}
return $return;
}
/**
* Get matches
* @return array
*/
public function function2(){
$product = $this->getList();
foreach($product as $key) {
$sku = $key['itemnum'];
list(, $sku) = explode("-", $sku);
}
$sql = 'SELECT product_sku, long_name
FROM TABLENAME
WHERE product_sku = "' . $sku . '"';
$result = $this->registry->db->query($sql);
$return = array();
while($row = $result->fetch_assoc()) {
$return[] = $row;
}
return $return;
}
发生了什么事是3行正在返回罚款。但第四行只返回最后一个$ sku没有任何匹配。我知道foreach循环每次都在覆盖,最后一个循环被放入变量$ sku中......但我还能怎么做才能得到我需要的?
'foreach'依赖于'$产品= $这个 - > getList();'whish不包含在你的代码 – Baba 2013-04-10 19:44:40
@Baba我怀疑'function1'是'getList'。 – Barmar 2013-04-10 19:47:04
对不起,我试图删除我认为是私人信息的东西..忘了那个哈哈..但是是所有的功能和表名都是正确的在我身边只是上面提到的问题..谢谢! – Lynx 2013-04-10 19:49:42