如何将href和ID号结合起来

时间:2019-01-22 14:26:41

标签: database joomla

试图从数据库中获取一些数据,但是我不能在代码中使用带有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>";
    }

    ?>

如果有人帮助我,我将不胜感激。

预先感谢

2 个答案:

答案 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>
  • 请注意,$ id不是声明的变量。如果是这样,它将被渲染,但是大括号之间的所有字符都将按字面意义处理,因为您尝试在回显中进行回显。

没有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>";
}

?>