0

このチュートリアルに従ってください: 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 
)

ただし、ページの他の場所で値の 1 つをエコーし​​ようとすると、次のようになります。

<input name="jform[item_id]" id="jform_item_id" value="<?php echo $bidItem->id; ?> " readonly="" type="text">

私は何も得ません。マニュアルには、次を使用して個々の値にアクセスできると記載されています。

$result->index // e.g. $result->email

私はとても愚かなことをしていますか?

4

2 に答える 2

1

まず第一に、$_GETJoomla では使用しないでください。次のように JInput を使用する必要があります。

$jinput = JFactory::getApplication()->input;
$orderID = $jinput->get('orderID', null, null);

データベースクエリについては、次のように変更loadObject();してみてくださいloadObjectList();

次に、これを変更することも忘れないでください。

->where('id = '.$_GET['orderID']);  

これに:

->where('id = '. $orderID);  
于 2014-02-28T18:22:17.553 に答える
0

$bidItem は、作成した関数に対してローカルです。ページの他の場所で使用するには、グローバルとして宣言します。関数の最後の行を次のように変更します。

    global $bidItem;
    $bidItem = $db->loadObject();
}

次に、HTML で使用する前に、次のように追加します。

<?php global $bidItem; ?>
于 2014-02-28T18:21:16.107 に答える