遵循本教程:http://docs.joomla.org/Selecting_data_using_JDatabase#Selecting_Records_from_a_Single_Table
我创建了一个函数如下:
function getItemForBid() {
// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
// Select item record matching the $orderID
$query
->select($db->quoteName(array('id', 'created_by', 'itemtitle', 'deliverydestination', 'listprice')))
->from($db->quoteName('#__entrusters_items'))
->where('id = '.$_GET['orderID']);
// Reset the query using our newly populated query object.
$db->setQuery($query);
// Load the results as a list of stdClass objects (see later for more options on retrieving data).
$db->setQuery($query);
$bidItem = $db->loadObject();
//print_r($bidItem);
}
print_r($bidItem);
起作用并返回,例如:
stdClass Object (
[id] => 4
[created_by] => 216
[itemtitle] => Tennis Racket
[deliverydestination] => London
[listprice] => 5000
)
但是,如果我尝试回显页面上其他一个值,例如:
<input name="jform[item_id]" id="jform_item_id" value="<?php echo $bidItem->id; ?> " readonly="" type="text">
我一无所获。手册说您可以使用以下方法访问各个值:
$result->index // e.g. $result->email
我做的事情非常愚蠢吗?
答案 0 :(得分:1)
首先,不要将$_GET
与Joomla一起使用,你应该像这样使用JInput:
$jinput = JFactory::getApplication()->input;
$orderID = $jinput->get('orderID', null, null);
对于您的数据库查询,请尝试将loadObject();
更改为loadObjectList();
然后也不要忘记改变这个:
->where('id = '.$_GET['orderID']);
到此:
->where('id = '. $orderID);
答案 1 :(得分:0)
$ bidItem是您创建的函数的本地。将其声明为全局以在页面上的其他位置使用它。修改函数的最后几行,如:
global $bidItem;
$bidItem = $db->loadObject();
}
然后在HTML添加之前使用它:
<?php global $bidItem; ?>