LACRIMAL 2 Denunciar post Postado Agosto 3, 2010 estou interligando algumas tabelas com um model (blog) da seguinte maneira: var $hasMany = array('img_blogs' => array( 'className' => 'ImgBlog', 'conditions' => 'tipo = "m"', 'order' => 'id DESC'), 'cmt_blogs' => array( 'className' => 'CmtBlog', 'conditions' => 'mostrar = "s"', 'order' => 'data_hora DESC')); var $belongsTo = array('atr_blogs' => array( 'className' => 'AtrBlog', 'order' => 'id ASC' )); o erro é o seguinte: Warning (512): SQL Error: 1052: Column 'id' in order clause is ambiguous [COREcakelibsmodeldatasourcesdbo_source.php, line 549] Query: SELECT `Blog`.`id`, `Blog`.`atr_blogs_id`, `Blog`.`titulo`, `Blog`.`titulo_slug`, `Blog`.`post`, `Blog`.`data-hora`, `atr_blogs`.`id`, `atr_blogs`.`nome`, `atr_blogs`.`descricao`, `atr_blogs`.`email`, `atr_blogs`.`twitter` FROM `blogs` AS `Blog` LEFT JOIN `atr_blogs` AS `atr_blogs` ON (`Blog`.`atr_blogs_id` = `atr_blogs`.`id`) WHERE 1 = 1 ORDER BY `id` DESC, `id` ASC Query: SELECT COUNT(*) AS `count` FROM `blogs` AS `Blog` LEFT JOIN `atr_blogs` AS `atr_blogs` ON (`Blog`.`atr_blogs_id` = `atr_blogs`.`id`) WHERE 1 = 1 ORDER BY `id` ASC Query: SELECT `Blog`.`id`, `Blog`.`atr_blogs_id`, `Blog`.`titulo`, `Blog`.`titulo_slug`, `Blog`.`post`, `Blog`.`data-hora`, `atr_blogs`.`id`, `atr_blogs`.`nome`, `atr_blogs`.`descricao`, `atr_blogs`.`email`, `atr_blogs`.`twitter` FROM `blogs` AS `Blog` LEFT JOIN `atr_blogs` AS `atr_blogs` ON (`Blog`.`atr_blogs_id` = `atr_blogs`.`id`) WHERE 1 = 1 ORDER BY `id` desc, `id` ASC LIMIT 3 alguem sabe me dizer como resolver isso ? obrigado, desde já Compartilhar este post Link para o post Compartilhar em outros sites
lucasvocals 0 Denunciar post Postado Agosto 4, 2010 estou interligando algumas tabelas com um model (blog) da seguinte maneira: var $hasMany = array('img_blogs' => array( 'className' => 'ImgBlog', 'conditions' => 'tipo = "m"', 'order' => 'id DESC'), 'cmt_blogs' => array( 'className' => 'CmtBlog', 'conditions' => 'mostrar = "s"', 'order' => 'data_hora DESC')); var $belongsTo = array('atr_blogs' => array( 'className' => 'AtrBlog', 'order' => 'id ASC' )); o erro é o seguinte: Warning (512): SQL Error: 1052: Column 'id' in order clause is ambiguous [COREcakelibsmodeldatasourcesdbo_source.php, line 549] Query: SELECT `Blog`.`id`, `Blog`.`atr_blogs_id`, `Blog`.`titulo`, `Blog`.`titulo_slug`, `Blog`.`post`, `Blog`.`data-hora`, `atr_blogs`.`id`, `atr_blogs`.`nome`, `atr_blogs`.`descricao`, `atr_blogs`.`email`, `atr_blogs`.`twitter` FROM `blogs` AS `Blog` LEFT JOIN `atr_blogs` AS `atr_blogs` ON (`Blog`.`atr_blogs_id` = `atr_blogs`.`id`) WHERE 1 = 1 ORDER BY `id` DESC, `id` ASC Query: SELECT COUNT(*) AS `count` FROM `blogs` AS `Blog` LEFT JOIN `atr_blogs` AS `atr_blogs` ON (`Blog`.`atr_blogs_id` = `atr_blogs`.`id`) WHERE 1 = 1 ORDER BY `id` ASC Query: SELECT `Blog`.`id`, `Blog`.`atr_blogs_id`, `Blog`.`titulo`, `Blog`.`titulo_slug`, `Blog`.`post`, `Blog`.`data-hora`, `atr_blogs`.`id`, `atr_blogs`.`nome`, `atr_blogs`.`descricao`, `atr_blogs`.`email`, `atr_blogs`.`twitter` FROM `blogs` AS `Blog` LEFT JOIN `atr_blogs` AS `atr_blogs` ON (`Blog`.`atr_blogs_id` = `atr_blogs`.`id`) WHERE 1 = 1 ORDER BY `id` desc, `id` ASC LIMIT 3 alguem sabe me dizer como resolver isso ? obrigado, desde já Teu problema tá nesses Order ali cara, tá dizendo que o ID é ambíguo. Tá sendo usado dois campos com o mesmo nome. Compartilhar este post Link para o post Compartilhar em outros sites
LACRIMAL 2 Denunciar post Postado Agosto 4, 2010 estou interligando algumas tabelas com um model (blog) da seguinte maneira: var $hasMany = array('img_blogs' => array( 'className' => 'ImgBlog', 'conditions' => 'tipo = "m"', 'order' => 'id DESC'), 'cmt_blogs' => array( 'className' => 'CmtBlog', 'conditions' => 'mostrar = "s"', 'order' => 'data_hora DESC')); var $belongsTo = array('atr_blogs' => array( 'className' => 'AtrBlog', 'order' => 'id ASC' )); o erro é o seguinte: Warning (512): SQL Error: 1052: Column 'id' in order clause is ambiguous [COREcakelibsmodeldatasourcesdbo_source.php, line 549] Query: SELECT `Blog`.`id`, `Blog`.`atr_blogs_id`, `Blog`.`titulo`, `Blog`.`titulo_slug`, `Blog`.`post`, `Blog`.`data-hora`, `atr_blogs`.`id`, `atr_blogs`.`nome`, `atr_blogs`.`descricao`, `atr_blogs`.`email`, `atr_blogs`.`twitter` FROM `blogs` AS `Blog` LEFT JOIN `atr_blogs` AS `atr_blogs` ON (`Blog`.`atr_blogs_id` = `atr_blogs`.`id`) WHERE 1 = 1 ORDER BY `id` DESC, `id` ASC Query: SELECT COUNT(*) AS `count` FROM `blogs` AS `Blog` LEFT JOIN `atr_blogs` AS `atr_blogs` ON (`Blog`.`atr_blogs_id` = `atr_blogs`.`id`) WHERE 1 = 1 ORDER BY `id` ASC Query: SELECT `Blog`.`id`, `Blog`.`atr_blogs_id`, `Blog`.`titulo`, `Blog`.`titulo_slug`, `Blog`.`post`, `Blog`.`data-hora`, `atr_blogs`.`id`, `atr_blogs`.`nome`, `atr_blogs`.`descricao`, `atr_blogs`.`email`, `atr_blogs`.`twitter` FROM `blogs` AS `Blog` LEFT JOIN `atr_blogs` AS `atr_blogs` ON (`Blog`.`atr_blogs_id` = `atr_blogs`.`id`) WHERE 1 = 1 ORDER BY `id` desc, `id` ASC LIMIT 3 alguem sabe me dizer como resolver isso ? obrigado, desde já Teu problema tá nesses Order ali cara, tá dizendo que o ID é ambíguo. Tá sendo usado dois campos com o mesmo nome. Tem o mesmo nome, mas são de classes diferentes...Tentei fazer o sugeriu, mas continuou não funcionando Quando eu tiro o $belongsTo, funciona tudo certo. o que pode ser isso ?? Compartilhar este post Link para o post Compartilhar em outros sites
lucasvocals 0 Denunciar post Postado Agosto 4, 2010 atr_blogs e img_blogs são tabelas no seu banco né? posta as tabelas pra eu dar uma olhada.. Mas ele tá se perdendo ali no order.. Acho que é como você estivesse dizendo pro SQL fazer " ORDER BY id ASC, id DESC " Pelo que eu entendi, teria que ser " ORDER BY img_blogs.id ASC, atr_blogs.id DESC " ::edit:: Inclusive no SQL que você postou ele faz exatamente isso que eu disse "" ORDER BY id ASC, id DESC "". Compartilhar este post Link para o post Compartilhar em outros sites
LACRIMAL 2 Denunciar post Postado Agosto 4, 2010 Mesmo tirando as orndenações, dá erro. tabela atr_blogs: CREATE TABLE `atr_blogs` ( `id` BIGINT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `nome` VARCHAR(255) NOT NULL, `descricao` BLOB NOT NULL, `email` VARCHAR(255) NOT NULL, `twitter` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE INDEX `id` (`id`) ) ENGINE=MyISAM ROW_FORMAT=DEFAULT AUTO_INCREMENT=2 tabela blogs: CREATE TABLE `blogs` ( `id` BIGINT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `atr_blogs_id` BIGINT(11) UNSIGNED NOT NULL DEFAULT '0', `titulo` VARCHAR(255) NOT NULL, `titulo_slug` VARCHAR(255) NOT NULL, `post` BLOB NOT NULL, `data-hora` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE INDEX `id` (`id`), UNIQUE INDEX `titulo_slug` (`titulo_slug`) ) ENGINE=MyISAM ROW_FORMAT=DEFAULT AUTO_INCREMENT=21 Compartilhar este post Link para o post Compartilhar em outros sites
lucasvocals 0 Denunciar post Postado Agosto 4, 2010 Mesmo tirando as orndenações, dá erro. tabela atr_blogs: CREATE TABLE `atr_blogs` ( `id` BIGINT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `nome` VARCHAR(255) NOT NULL, `descricao` BLOB NOT NULL, `email` VARCHAR(255) NOT NULL, `twitter` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE INDEX `id` (`id`) ) ENGINE=MyISAM ROW_FORMAT=DEFAULT AUTO_INCREMENT=2 tabela blogs: CREATE TABLE `blogs` ( `id` BIGINT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `atr_blogs_id` BIGINT(11) UNSIGNED NOT NULL DEFAULT '0', `titulo` VARCHAR(255) NOT NULL, `titulo_slug` VARCHAR(255) NOT NULL, `post` BLOB NOT NULL, `data-hora` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE INDEX `id` (`id`), UNIQUE INDEX `titulo_slug` (`titulo_slug`) ) ENGINE=MyISAM ROW_FORMAT=DEFAULT AUTO_INCREMENT=21 Tuas tabelas estão com ENGINE=MyISAM Tem que ser InnoDB! Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
LACRIMAL 2 Denunciar post Postado Agosto 4, 2010 mesmo mudando, ainda está dando os mesmos erros ! Compartilhar este post Link para o post Compartilhar em outros sites
LACRIMAL 2 Denunciar post Postado Agosto 4, 2010 mesmo mudando, ainda está dando os mesmos erros ! Resolvido.Estava aparecendo "id ambíguo" porque não foi definido de onde vinha o id da paginação e do findAll no controller. Valeu pela ajuda lucasvocals Compartilhar este post Link para o post Compartilhar em outros sites