如何调用Magento中的其他数据库来填充自定义下拉框?

时间:2013-06-25 22:02:32

标签: php sql sql-server magento

我对Magento非常陌生,我不确定我想要的是否可行。我想要做的是不使用Magento API,因为我们使用的是多站点版本的企业,而且速度非常慢。我目前正在使用Magento 1.11版。

我有一个以前员工制作的自定义模块,我想为它添加一个下拉框,让它调用另一个数据库(然后是local.xml文件中设置的数据库)并填充该框一个sql命令从不同的数据库中获取所有品牌。不同的数据库是SQL数据库,而不是MySQL数据库。我知道连接是有效的,因为我测试了它,当我把它放在

mssql_select_db('myDatabase', $link)
die('Something went wrong')
它崩溃了;但是,当我把代码放在:

!mssql_select_db('myDatabase', $link)
die('Something went wrong')

它不会崩溃,它会继续正常运行。

我的SQL代码如下所示:

$getBrandNameQuery = "SELECT a.BrandID, a.[Name]
FROM mydatabase a
join Categories b on a.CategoryID = b.CategoryID
where a.CategoryID = 1

这将为我提供我想要的品牌。现在我的php Magento代码(虽然它只是给我一个空白页面)看起来像这样:

$fieldset->addField("get_brand", "select", array("label"=> $helper->__("Brands"),
"title"=>$helper->__("Brands"),
"name"=>"get_brand",
"required" => true,
/*"values"=> array(
"1" => $helper->__("Active"),
"0" => $helper->__("Inactive"),*/
"values"=> Mage::getSingleton("torus_mailinrebate_block_adminhtml_model_system_config_source_brands")->toOptionArray(),

它不会发回任何内容或填充下拉框。以前的值为0和1表示活动和非活动,但我将有大约30多个项目。

我获取数据的代码如下所示:

for ($i = 0; $i < mssql_num_rows($query); ++$i) {
$row = mssql_fetch_row(mssql_query($getBrandNameQuery));
$id = $row->getId();
$name = $row->getName();
$brandName[] = array('value'=>$id, 'label'=>$name);
}

mssql_free_result($query);
return $brandName;

请告诉我我需要从哪里开始,任何帮助都将受到高度赞赏。 感谢。

1 个答案:

答案 0 :(得分:-1)

您可以了解如何创建新的数据库连接(您已经完成)以及如何在以下URL正确访问它:

http://fishpig.co.uk/blog/create-an-external-database-connection-in-magento.html