0

我对 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;

请告诉我我需要从哪里开始,任何帮助将不胜感激。谢谢。

4

1 回答 1

0

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

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

于 2013-06-26T11:40:08.093 回答