私はcodeigniterにこの問題があります: データベースからナビゲーションツリーシステムを作成しようとしています。codeigniter group_by最初の行だけを返します
モデル:
function getServices()
{
$this->db->select('service_url, service_title, category_title');
$this->db->join('services_category', 'services_category.id=services.category_id');
$this->db->group_by('category_title');
$this->db->order_by('service_title', 'ASC');
$query = $this->db->get('services');
if($query->result() == TRUE)
{
foreach($query->result_array() as $row)
{
$result[] = $row;
}
return $result;
}
}
ビュー:
今<?php if(isset($services) && $services) : foreach($services as $s) : ?>
<ul>
<li><a href="#"><?php echo $s['category_title'] ?></a>
<ul>
<li><?php echo anchor('services/' . $s['service_url'], $s['service_title']); ?></li>
</ul>
</li>
</ul>
<?php endforeach; ?>
<?php endif; ?>
これまでのところは良い、結果は道がになっている各カテゴリを返しているが、サービスは、カテゴリごとに1つのだけのサービスを返していますいくつかのカテゴリには15のサービスがあります。 誰かが私に手を差し伸べるか、説明が間違っていますか? ありがとうございます。
"私はphpやcodeigniterの専門家ではありません。私はずっと前から始まっていますので、初心者を撃ってはいけません。"
注:私はGROUP_BYとORDER_BYなしで試みたが、すべてのサービスを返しているが、カテゴリが繰り返され、
例:Group By (MySQL)を使用した場合
category-a
service1
category-a
service2
category-b
service10
category-b
service11
category-c
service30
category-c
service31
....
男だ、あなたは、私は間違いなく、私がブログでこのことについてのチュートリアルを書きますが、私は4時間にわたり、このために探していた神と無応答に誓う、そして、伝説ですもちろん、私はあなたに言及します。本当にありがとうございます。私は本当にあなたの助けに感謝します。 – lesandru
実際に私はあなたに何かを尋ねたいと思っています。 MVCを破ることはありませんか? – lesandru
こんにちはアレックス、あなたはまだモデルのデータ定義を維持して以来、MVCを壊すことはありません、あなたはちょうどコントローラレベルにあるべきビューのモデルのメソッドを公開しました。私は通常ヘルパーを使用しているので、両方のコントローラ/ビューからのモデルへのすべての呼び出しはヘルパー内にあります。 – ace