【问题标题】:how to get data from virtuemart categories tables?如何从美德玛特类别表中获取数据?
【发布时间】:2013-11-05 12:13:20
【问题描述】:

您好,我需要在表单 (RSForm joomla 2.5) 中创建一个下拉列表字段,该字段将从deremmart 类别名称中提取其值。 我有这段代码需要根据我的需要进行自定义,但是由于我不知道 php,所以我所有的即兴创作都以致命错误告终,需要再次重新安装表单:(

我在mysql中的表名是xxx_virtuemart_categories_he_il

这里列出了类别名称category_names

他们的身份证在这里virtuemart_category_id

这是代码块,我该如何更改它?

//<code>
// Prepare the empty array
$items = array();
// Prepare the database connection
$db = JFactory::getDbo();
// Run the SQL query and store it in $results
$db->setQuery("SELECT your_value, your_label FROM #__your_table");
$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
 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>

【问题讨论】:

  • $db-&gt;setQuery("SELECT your_value, your_label FROM #__your_table");,您应该在此处指定要选择的列和表名。它是 SQL,所以如果您需要任何帮助,请查看它。我没有使用过 joomla 2.5,所以我不知道如何获取错误等(如果有的话),但如果我是你,我会调查一下,以确保 SQL 没有给你任何问题。在 foreach 循环中,您似乎应该使用 SQL 查询中的选定列,但每个结果似乎都是一个对象,因此它们是对象的属性,而不是数组中的索引。
  • 谢谢,所以据我了解-SQL 与 mySQL 不同,并且此代码不起作用?这就是这行代码的样子? $db->setQuery("从 xxx_virtuemart_categories_he_il 中选择 category_names、defectmart_category_id");
  • MySQL 使用“正常”的 SQL 语法。这看起来确实正确。您可以在 JDatabase 对象here 的文档/API 中找到。看着你应该在$results = $db-&gt;loadObjectList(); 之后尝试以下echo $db-&gt;getErrorMsg(); 以查看SQL 错误。
  • 错误是:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法 SQL=SELECT category_names, meadowmart_category_id FROM #_virtuemart_categories_he_il

标签: php mysql joomla2.5 virtuemart


【解决方案1】:

添加:

$db->query();

之前:

$results = $db->loadObjectList();

【讨论】:

  • 抱歉没有任何变化:(
  • 我需要将其更改为这种格式吗? // 从用户配置文件表中选择键以“custom.”开头的所有记录。 // 按排序字段对其进行排序。 $query->select($db->quoteName(array('user_id', 'profile_key', 'profile_value', 'ordering'))); $query->from($db->quoteName('#__user_profiles')); $query->where($db->quoteName('profile_key') . ' LIKE '. $db->quote('\'custom.%\'')); $query->order('ordering ASC');
  • 您可以在$db-&gt;setQuery(); 之前和之后尝试echo $db-&gt;getLog();。在 setQuery() 之后也给我们确切的信息:echo $db-&gt;getQuery();;
【解决方案2】:

在 mercurial 中连接到 bd 的快速简单的解决方案是:

$db = JFactory::getDbo();
$db->setQuery("SELECT * FROM ... WHERE ...");
$db->query();
$results = $db->loadObjectList();

echo var_dump($results);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    相关资源
    最近更新 更多