试图找到在 Joomla 2.5 组件中提取数据库项目的最佳方法
Posted
技术标签:
【中文标题】试图找到在 Joomla 2.5 组件中提取数据库项目的最佳方法【英文标题】:Trying to Find the Best way to pull DB item in Joomla 2.5 Component 【发布时间】:2013-10-30 10:45:02 【问题描述】:我有一个数据库,它有 2 列 id
和 title.
当用户在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
。我快接近了,但仍有一些问题。
【问题讨论】:
【参考方案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
的问题中添加了一些信息,您认为您可以评论我做错了什么,以便我们可以结束这个问题吗?
是的!做到了。非常感谢最后一次更新,它为我清除了一切。以上是关于试图找到在 Joomla 2.5 组件中提取数据库项目的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章