使用PHP从MySQL中提取列值

时间:2014-09-29 15:44:32

标签: php mysql joomla

我试图从数据库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>

但是,它在下拉框中不显示任何内容,只显示默认值。有什么帮助吗?

1 个答案:

答案 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。

希望这有帮助