试图从数据库中获取一些数据,但是我不能在代码中使用带有ID号的href。
我尝试了一切,但没有成功。
<?php
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array($db->quoteName('title')));
$query->select(array($db->quoteName('id')));
$query->select(array($db->quoteName('start_date')));
$query->select(array($db->quoteName('end_date')));
$query->from($db->quoteName('#__rbid_auctions'));
$db->setQuery($query);
$results = $db->loadObjectList();
// display the results
foreach ( $results as $result) {
echo <<<HTML
<a href="index.php?option=com_rbids&task=viewbids&id={<?php echo $id; ?>}">$result->title . </a>
HTML;
echo "<p>" . $result->start_date . "</p>";
echo "<p>" . $result->end_date . "</p>";
}
?>
如果有人帮助我,我将不胜感激。
预先感谢
答案 0 :(得分:1)
演示问题,然后提出建议的解决方案:(Online Demo)
$result = new stdClass();
$result->id = 333;
$result->title = 'title text';
echo <<<HTML
<a href="index.php?option=com_rbids&task=viewbids&id={<?php echo $id; ?>}">$result->title . </a>
HTML;
输出:
注意:未定义的变量:第7行的/ in / s1YZG中的ID
<a href="index.php?option=com_rbids&task=viewbids&id={<?php echo ; ?>}">title text . </a>
没有heredoc语法(heredoc可能会因PHP版本而对制表符很有趣):
echo "<a href=\"index.php?option=com_rbids&task=viewbids&id={$result->id}\">{$result->title} . </a>"; // curly braces may help IDEs with highlighting
新输出:
<a href="index.php?option=com_rbids&task=viewbids&id=333">title text . </a>
关于您的查询构建语法...
getQuery()
上。quoteName()
调用都不是必需的,但是如果您坚持采用Joomla的首选做法,则可以在quoteName()
中的数组上调用select()
。建议的代码:
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->quoteName(array('title', 'id', 'start_date', 'end_date')))
->from($db->quoteName('#__rbid_auctions'));
$db->setQuery($query);
if (!$results = $db->loadObjectList()) {
echo "No results";
} else {
foreach ($results as $row) {
echo "<a href=\"index.php?option=com_rbids&task=viewbids&id={$row->id}\">{$row->title} . </a>";
echo "<p>{$row->start_date}</p>";
echo "<p>{$row->end_date}</p>";
}
}
这是另一篇文章,其中SELECT查询后调用loadObjectList()
,其中包括查询错误检查:https://joomla.stackexchange.com/a/22963/12352
遇到Joomla问题时,请将其发布在Joomla Stack Exchange上。
答案 1 :(得分:0)
我会这样尝试:
您还试图回显未分配的$ id。应该是$ results-> id
<?php
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('title', 'id', 'start_date', 'end_date' ));
$query->from($db->quoteName('#__rbid_auctions'));
$db->setQuery($query);
$results = $db->loadObjectList();
// display the results
foreach ( $results as $key => $result) {
echo ' <a href="index.php?option=com_rbids&task=viewbids&id='.$result->id .'>'.$result->title .'</a>';
echo "<p>" . $result->start_date . "</p>";
echo "<p>" . $result->end_date . "</p>";
}
?>