我正在尝试从数据库 mpctz_rsform_bruels 中获取列 Bruel_ID 的所有值(数字),以将它们显示在 RSForm 下拉框中。我正在使用这段代码:
$db = JFactory::getDbo();
$db->setQuery("SELECT Bruel_ID FROM mpctz_rsform_bruels");
return $db->loadResult();
但是,我只提取列的最低值。我怎样才能得到所有的值(value)? 谢谢,
丹妮
编辑:我一直在搜索,我发现这段代码应该可以工作:
//<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>
但是,它在下拉框中不显示任何内容,只显示默认值。有帮助吗?
最佳答案
您可以使用 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。
希望对你有帮助
关于php - 使用 PHP 从 MySQL 中提取列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26103773/