проблема присоединения codeigniter - PullRequest
1 голос
/ 12 января 2011

Привет всем, у меня есть проблема, что, когда я пытаюсь присоединиться к моей таблице комментариев, она ничего не показывает

вот мой код

$this->db->select('*,users.profil_billed as profil_billed, forum_traad.id as traad_id');
$this->db->from('forum_traad');
$this->db->join('users', 'forum_traad.brugernavn = users.username');
$this->db->where('forum_traad.fk_forum_kategori', $id);
$this->db->join('forum_kommentare', 'forum_traad.id = forum_kommentare.fk_forum_traad');
$this->db->where('forum_kommentare.fk_forum_traad', 'forum_traad.id');
$this->db->order_by("forum_traad.id", "DESC");

тогда я помещаю это в нее, ничего не показывать,и я не знаю, почему .. мне нужно немного левое соединение, правое соединение и т. д.?Я попробовал все это: d

$this->db->join('forum_kommentare', 'forum_traad.id = forum_kommentare.fk_forum_traad');
$this->db->where('forum_kommentare.fk_forum_traad', 'forum_traad.id');

kommentare = комментарии traad = тема brugernavn = имя пользователя kategori = categoryori

его датский,

извините, мой плохой английский надеюсь, что некоторыеможно мне помочь


моя структура базы данных такова, и я использую mysql

CREATE TABLE `forum_kategori` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `kategori` text NOT NULL,
  `beskrivelse` mediumtext NOT NULL,
  `godkendt` varchar(4) NOT NULL DEFAULT 'ja',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10;

CREATE TABLE `forum_kommentare` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fk_forum_traad` int(11) NOT NULL,
  `brugernavn` text NOT NULL,
  `indhold` mediumtext NOT NULL,
  `dato` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `time` text NOT NULL,
  `godkendt` varchar(4) NOT NULL DEFAULT 'ja',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=28;

CREATE TABLE `forum_traad` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `overskrift` text NOT NULL,
  `indhold` mediumtext NOT NULL,
  `fk_forum_kategori` int(11) NOT NULL,
  `brugernavn` text NOT NULL,
  `dato` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `godkendt` varchar(4) NOT NULL DEFAULT 'ja',
  `time` text NOT NULL,
  `status` varchar(8) NOT NULL DEFAULT 'aaben',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4;

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(80) NOT NULL,
  `password` text NOT NULL,
  `kon` varchar(5) NOT NULL,
  `alder` text NOT NULL,
  `hood` varchar(4) DEFAULT NULL,
  `fornavn` varchar(60) DEFAULT NULL,
  `efternavn` varchar(100) DEFAULT NULL,
  `city` text,
  `ip` varchar(20) DEFAULT NULL,
  `level` text,
  `email` text,
  `point` int(11) NOT NULL,
  `oprettet` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `fritekst` mediumtext NOT NULL,
  `profil_billed` text NOT NULL,
  `online` varchar(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=31;

, и он ничего не возвращает и без ошибок он показывает только сообщение, которое я сделал с другимЗаявление, в котором говорится "нет потоков в этой категории", я попытался с левым соединением, правым соединением внутренним соединением, полным соединением, вы все: S

Ответы [ 3 ]

0 голосов
/ 12 января 2011

Попробуйте этот код:

$this->db->select('*,users.profil_billed as profil_billed, forum_traad.id as traad_id');
$this->db->from('forum_traad');
$this->db->join('users', 'forum_traad.brugernavn = users.username');
$this->db->join('forum_kommentare', 'forum_traad.id = forum_kommentare.fk_forum_traad');
$this->db->where('forum_traad.fk_forum_kategori', $id);
$this->db->order_by("forum_traad.id", "DESC");
0 голосов
/ 18 сентября 2011

Вы можете использовать после $this->db->get()

print $this->db->last_query();

и проверь, что не так.

0 голосов
/ 12 января 2011

Вы должны попытаться использовать left объединение для ваших объединений и работать оттуда.Если это не сработает, тогда между таблицами нет связи.

...