【发布时间】:2013-06-25 22:02:32
【问题描述】:
我对 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;
请告诉我我需要从哪里开始,我们将不胜感激。 谢谢。
【问题讨论】:
-
您的问题已在此处得到解答stackoverflow.com/questions/6821129/…
-
我已经定义了一个到 magento 数据库的连接,但是这个新连接是用于非 magento 数据库的,并且是只读的。我喜欢您提供的链接,但是如何将我的第二个数据库添加到列表中以及在哪里?我根本不希望有任何写入这个新数据库的可能性。我正在使用 2 个单独的文件:C:\Program Files (x86)\Zend\Apache2\htdocs\magento2\app\code\local\Torus\MailInRebate\Block\Adminhtml\Rebate\Edit\Tab\Main.php 和 C :\Program Files (x86)\Zend\Apache2\htdocs\magento2\app\code\local\Torus\MailInRebate\Block\Adminhtml\Model\System\Config\Source\Brands.php
标签: php sql sql-server magento