2

Joomla2.5のidによる記事を読むのが好きです。私はフレームワークの中にいないので、最初にそれを含める必要があります。IDで記事を取得する方法のサンプルもいくつか見つかりましたが、失敗することはありません...これは私が試しているサンプルです。

define( '_JEXEC', 1 );
define( '_VALID_MOS', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__)));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
echo JPATH_BASE .DS.'includes'.DS.'framework.php';
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
echo  $mainframe->getCfg('sitename');

$articleId = JRequest::getInt('Itemid');
$db =& JFactory::getDBO();

$sql = "SELECT fulltext FROM #__content WHERE id = 260"; //.intval($articleId);
$db->setQuery($sql);
$fullArticle = $db->loadResult();

記事ID260が利用可能ですが、nullを返します...

トレースすると、loadResult()の$cursorはすべてnullです。

public function loadResult()
{
    // Initialise variables.
    $ret = null;

    // Execute the query and get the result set cursor.
    if (!($cursor = $this->execute()))
    {
        return null;
    }
     ...

誰か助けてもらえますか?

アンドレありがとう

4

2 に答える 2

3

スクリプトに必要のないものがいくつかあり、私はそれをJoomla2.5コーディング標準に変更しました。

define('_JEXEC', 1);
define('JPATH_BASE', realpath(dirname(__FILE__)));
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
require_once ( JPATH_BASE .'/libraries/joomla/factory.php' );

$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('introtext')
 ->from('#__content')
 ->where('id = 260');
$db->setQuery($query);

$fullArticle = $db->loadResult();

echo $fullArticle;

お役に立てれば

于 2013-02-23T16:41:35.843 に答える
0

このSQLクエリを試してみてください。これで動作するはずです。

$sql  = 'SELECT `fulltext` FROM `#__content` WHERE `id` = 260';

Lodderが言ったことはまったく同じですが、クエリよりも構造が優れているだけです。

したがって、自分に合っていれば、そのスタイルでコーディングできます。彼のコーディング方法では、次のようになります。

$sql = $db->getQuery(true);
$sql->select('fulltext')
 ->from('#__content')
 ->where('id = 260');
$db->setQuery($sql);

このように読みやすく、変更しやすいですね。:)

また、`fulltext`がnullになることがあるため、 `introtext`からコンテンツをフェッチすることもできます。

于 2013-02-23T17:11:58.973 に答える