1

単一のデータベース テーブルからデータを抽出する方法は?

たとえば、テーブルからのデータが必要です: カテゴリ、列: ID 1 の説明?

4

1 に答える 1

6

Joomla コンポーネントを作成しようとしている限り、MVC アーキテクチャを使用してコードの作成を学習することをお勧めします。このテーマに関する Joomla のドキュメントは、こちらから入手できます。とにかく、単純だが一時的な解決策を提供するつもりであり、後で Joomla の MVC を使用して書き直す必要があります。

からデータを選択column1して、単純なテーブルに表示したいと思います。column2#__example_table

まず、空のビューを持つコンポーネントを作成する必要があります。このオンライン ツールを使用して、一目でコンポーネントを作成できます。もちろん、空のビューを持つコンポーネントを作成するのは無料です。コンポーネントをビルド、ダウンロード、およびインストールした後、それを と呼びましょう。フォルダー内にcom_mycomponentと呼ばれるフォルダーがあります。それを開くと、フォルダーが表示され、その中にビュー用のフォルダーがあり、それを と呼びます。com_mycomponent/componentsviewsmyview

ビュー フォルダーには、view.html.phpビューのクラスを含む というファイルがあり、ビューのテンプレートのファイルtmplを含む というフォルダーも表示されます。default.php

エディターで開き、次のようにメソッドの後view.html.phpに呼び出されるパブリック属性を作成します。$itemsgetData()display()

<?php
class MycomponentViewMyview extends JView {

    .
    .
    .
    public $items;

    public function display($tpl = null) {
        .
        .
        .
        $this->items = $this->getData();

        parent::display($tpl);
    }

    public function getData() {
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select(array('column1', 'column2'));
        $query->from('#__example_table');
        $query->where('condition = 1');
        $query->order('id DESC');
        $db->setQuery($query);
        $results = $db->loadObjectList();
        if (!empty($results)) {
            return $results;
        }
        return false;
    }

}

この例では、ここで説明されている Joomla のデータベース API を使用しました。ドットは、変更する必要のない残りのコードを意味すると考えてください。

ここですべてを開い/components/com_mycomponent/views/myview/tmpl/defailt.phpて削除し、次のように記述します。

<?php
defined('_JEXEC') or die; // No direct access

if (count($this->items)) {
?>
<table style="width: 100%">
    <thead>
        <tr>
            <th>Column 1</th>
            <th>Column 2</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($this->items as $item) { ?>
        <tr>
            <td><?php echo $item->column1; ?></td>
            <td><?php echo $item->column2; ?></td>
        </tr>
        <?php } ?>
    </tbody>
</table>
<?php 
} else { 
    echo 'Sorry! No data found...';
}

例は非常に明確で説明の必要はないと思いますが、何が起こっているかについて簡単に説明します。まず、データベースからデータを取得し、外部からアクセス可能な変数に格納するメソッドを作成しました。次に、ビュー クラスのコンストラクタである display メソッドからそのメソッドを呼び出します。次に、ビューのテンプレートで、$items変数に格納されたレコードにループを使用し、それらをテーブルの行に表示しました。

  • 誰もが使用できるように、できるだけ簡単な方法で解決策を説明しようとしましたが、気になる場合は申し訳ありません.
  • お気軽に質問して訂正してください。
于 2013-05-22T18:47:38.413 に答える