【问题标题】:Trying to Find the Best way to pull DB item in Joomla 2.5 Component试图找到在 Joomla 2.5 组件中提取数据库项目的最佳方法
【发布时间】:2013-10-30 10:45:02
【问题描述】:

我有一个数据库,它有 2 列 idtitle. 当用户在Joomla 2.5 组件的表单(管理视图)?

当我在这里查看文档时:

http://docs.joomla.org/Selecting_data_using_JDatabase

我发现通过使用 Joomla 的 API,我可以使用速记来创建此连接。我试过了:

$userSubmittedIDValue = $_GET["userSubmittedIDValue"];

// Get a db connection.
$db = JFactory::getDbo();

// Create a new query object.
$query = $db->getQuery(true);

$query
->select($db->quoteName(array('title')))
->from($db->quoteName('#__mycomponent_table'))
->where($db->quoteName('id') . ' = '. $db->quote('$userSubmittedIDValue'))

$results = $db->loadObjectList();

不幸的是,这会产生以下错误:

Parse error: syntax error, unexpected T_VARIABLE

然后错误指向$results = $db->loadObjectList();

我只需要提取该值并将其应用于 php 变量,以便我可以根据需要使用它。有什么想法吗?


好的,感谢第一个答案,我意识到我错过了一个分号。我现在遇到的麻烦仍然是使用foreach 从数组中提取值。我尝试添加以下内容:

foreach (array($results) as $userSubmittedIDValue) {

echo $results;

}

但这只是打印单词Array。我快接近了,但仍有一些问题。

【问题讨论】:

    标签: php mysql loops joomla components


    【解决方案1】:

    您收到该错误是因为您在查询后缺少分号。

    所以,改变这个:

    ->where($db->quoteName('id') . ' = '. $db->quote('$userSubmittedIDValue'))
    

    到这里:

    ->where($db->quoteName('id') . ' = '. $db->quote('$userSubmittedIDValue'));
    

    只需注意末尾的;

    完成后,您可以使用foreach 循环来显示您的结果。

    所以你最终要使用的代码是这样的:

    $db = JFactory::getDBO();
    $query = $db->getQuery(true);
    
    $query->select('*')
    ->from('#__mycomponent_table')
    ->where($db->quoteName('id') . ' = '. $db->quote($userSubmittedIDValue));
    
    $db->setQuery($query);    
    $rows = $db->loadObjectList();
    
    foreach ($rows as $row) {
        echo $row->title;
    }
    

    我之前完全忘了提到,您还必须删除查询中 $userSubmittedIDValue 周围的单引号,如我上面的代码所示。 希望这会有所帮助

    【讨论】:

    • 这绝对是出现错误的原因,谢谢!我在有关使用foreach 的问题中添加了一些信息,您认为您可以评论我做错了什么,以便我们可以结束这个问题吗?
    • 是的!做到了。非常感谢最后一次更新,它为我清除了一切。
    猜你喜欢
    • 2012-06-19
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 2016-01-08
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多