我试图从数据库mpctz_rsform_bruels获取Bruel_ID列的所有值(数字),以在RSForm下拉框中显示它们。我正在使用此代码:
$db = JFactory::getDbo();
$db->setQuery("SELECT Bruel_ID FROM mpctz_rsform_bruels");
return $db->loadResult();
但是,我只是拉了列的最低值。我怎样才能获得所有价值? 谢谢,
达尼
编辑:我一直在搜索,我发现这个代码应该有效:
//<code>
// Prepare the empty array
$items = array();
// Prepare the database connection
$db = JFactory::getDbo();
// Keep this if you'd like a "Please select" option, otherwise comment or remove it
$items[] = "|Selecciona un número[c]";
// Run the SQL query and store it in $results
$db->setQuery("SELECT Bruel_ID, Bruel_ID FROM #__rsform_bruels");
$results = $db->loadObjectList();
// Now, we need to convert the results into a readable RSForm! Pro format.
// The Items field will accept values in this format:
// value-to-be-stored|value-to-be-shown
// Eg. m|M-sized T-shirt
foreach ($results as $result) {
$value = $result->your_value;
$label = $result->your_label;
$items[] = $value.'|'.$label;
}
// Multiple values are separated by new lines, so we need to do this now
$items = implode("\n", $items);
// Now we need to return the value to the field
return $items;
//</code>
但是,它在下拉框中不显示任何内容,只显示默认值。有什么帮助吗?
答案 0 :(得分:0)
您可以使用loadColumn()
在单个列中获取所有结果的数组。下面只显示了这个和foreach
循环,以便每个结果显示在一个新行上:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName('Bruel_ID'))
->from($db->quoteName('#__rsform_bruels'))
->order($db->quoteName('Bruel_ID') . 'DESC');
$db->setQuery($query);
$results = $db->loadColumn();
$items[] = "|Selecciona un número[c]";
foreach ($results as $id) {
$items[] = $id.'|'.$id;
}
$items = implode("\n", $items);
return $items;
这使用最新的Joomla编码标准进行数据库查询。
另请注意,我已将mpctz_
替换为#__
,这是内置的Joomla功能,可自动获取表前缀。它可以节省你必须手动定义它,因为将来你可以决定改变前缀x。
希望这有帮助