magento数据库sql无法正常工作

时间:2015-10-21 13:58:41

标签: php mysql oop magento zend-framework

所以不知道为什么这个功能不起作用?我试图从表格中选择所有ID,但没有选择任何内容。

       public function jobsArray()
      {
        $connection = Mage::getSingleton('core/resource')->getConnection('Envato_CustomConfig_Job');
        $result = $connection->fetchAll("SELECT id FROM Envato_CustomConfig_Job");

        $rows = array();
        foreach($result as $record) {
            $rows = ('value'=>$record, 'label'=>$record);
        }
        return $rows;
      }

下面这个函数工作正常,我需要上面的函数和下面的teh函数一样。

  public function toOptionArray()
  {
    return array(
      array('value'=>1, 'label'=>'one'),
      array('value'=>2, 'label'=>'Two'),
      array('value'=>3, 'label'=>'Three'),            
      array('value'=>4, 'label'=>'Four')                     
    );
  }

2 个答案:

答案 0 :(得分:2)

您的代码存在一些问题:

您只选择了一个项目id,但稍后我假设您正在使用ID和值。

    $result = $connection->fetchAll("SELECT id FROM Envato_CustomConfig_Job");

record是来自SQL查询的数组,所以你应该这样对待它。例如。 $record['id']

$rows你想要作为一个数组,但每次都要覆盖它,所以$rows[] =更有意义

类似的东西:

public function jobsArray()
{
    $connection = Mage::getSingleton('core/resource')->getConnection('Envato_CustomConfig_Job');
    $result = $connection->fetchAll("SELECT id, label FROM Envato_CustomConfig_Job");

    $rows = array();
    foreach($result as $record) {
        $rows[] = array('value'=>$record['id'], 'label'=>$record['label']);
    }
    return $rows;
}

答案 1 :(得分:2)

尝试使用核心读/写资源。变化

$connection = Mage::getSingleton('core/resource')->getConnection('Envato_CustomConfig_Job');

$connection = Mage::getSingleton('core/resource')->getConnection('core_read');