我想使用 Magento 模块创建一个下拉选项,该模块从我创建的数据库中填充数据。
以前,我在我的 IndexController.php 中有这段代码,它是有效的。这是第一个代码。
public function dropdownAction() {
if (file_exists('./app/etc/local.xml')) {
$xml = simplexml_load_file('./app/etc/local.xml');
$tblprefix = $xml->global->resources->db->table_prefix;
$dbhost = $xml->global->resources->default_setup->connection->host;
$dbuser = $xml->global->resources->default_setup->connection->username;
$dbpass = $xml->global->resources->default_setup->connection->password;
$dbname = $xml->global->resources->default_setup->connection->dbname;
}
else {
exit('Failed to open ./app/etc/local.xml');
}
$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname) or die("Unable to select database");
$tblname = $tblprefix.'my_db_table';
$result = mysql_query("SELECT dropdowndata FROM ".$tblname."");
echo '<select>';
while ($ary = mysql_fetch_array($result)){
echo "<option>" . $ary['dropdowndata '] . "</option>";
}
echo "</select>";
mysql_close($link);
}
但我认为上面的代码不是 Magento 的方式。你同意吗?
现在,我想用 IndexController.php 中的代码填充数据。这是第二个代码。
public function dropdownAction() {
$options= Mage::getModel('my/model')->getCollection();
foreach($options as $option){
$optionData = $option->getDropdowndata ();
echo "<select>";
echo "<option>" .$optionData."</option>";
echo "</select>";
}
}
使用上面的代码,数据被填充,但一个数据只有一个下拉选项。所以浏览器上出现了很多下拉选项,每个下拉选项将只包含一个数据。
我想我错过了while ($ary = mysql_fetch_array($result))
. 但我很困惑如何包含该代码?
所以,我的问题是如何在 Magento 中做 mysql_fetch_array ?或者有人可以解释一下如何使上面的第二个代码像第一个代码一样工作。