Как я могу сделать цикл внутри цикла в codeigniter? - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть таблица faq_categories со следующими полями

CREATE TABLE IF NOT EXISTS `faq_categories` (
  `catid` int(11) NOT NULL AUTO_INCREMENT,
  `categoryname` varchar(37) NOT NULL,
  `parentid` int(11) DEFAULT NULL,
  `description` text NOT NULL,
  `metatags` text NOT NULL,
  `sorder` int(11) NOT NULL,
  `visible` tinyint(4) NOT NULL,
  `categoryphoto` varchar(255) NOT NULL,
  PRIMARY KEY (`catid`),
  KEY `parentid_fk` (`parentid`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=52 ; 

В моем php-коде у меня есть следующий код:

$query="SELECT * FROM categories";
    $result=mysql_query($query);
    $num=mysql_num_rows($result);
    $i=0;
    while ($i < $num) {
        $id=mysql_result($result,$i,"id");
        $name=mysql_result($result,$i,"name");
        $parentid=mysql_result($result,$i,"parentid");
        $categoryphoto=mysql_result($result,$i,"categoryphoto");
        $sorder=mysql_result($result,$i,"sorder");
        $visible=mysql_result($result,$i,"visible");


 echo $id;

echo $name;

// THIS IS WHAT I DON'T KNOW HOW TO DO IN CODEIGNITER
// HOW TO GET THE CATEGORYNAME ON BASE ON PARENTID

 if ($parentid) {

                        //echo $parentid;
                         $query1="SELECT name as parentname FROM categories WHERE id = ".$parentid; 
                         echo mysql_result(mysql_query($query1),0,"parentname");

                        } else {
                            echo "Root Category";
                        } 

Как это сделать в codeigniter?Если возможно, я бы хотел избежать присоединений.

1 Ответ

0 голосов
/ 17 февраля 2012

Во-первых: я думаю, что вы можете проверить Класс базы данных Во-вторых: почему вы не хотите использовать объединения?Если вы ненавидите это, возможно, вы можете использовать FROM table1,table2 :) ИМХО меньшие запросы лучше :)

РЕДАКТИРОВАТЬ Установить sql-gui (например, phpMyAdmin , adminer ...) и попробуйте запрос!Пример, аналогичный тому, что вам нужно:

SELECT *, catjoin.categoryname AS parentname
FROM categories
JOIN categories AS catjoin ON (catjoin.catid=categories.parentid)

Вы можете расширить catjoin.categoryname с помощью IFNULL для возврата ROOT category.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...