Rodrigo01 1 Denunciar post Postado Setembro 1, 2013 Pois bem gostaria de saber quem poderia me ajudar a consertar esse script com uso de explode o caso e que não aparece os dados devidamente, deveria aparecer no caso os dados da seguinte forma, eu coloco os valores separados por vírgulas na tabela news na coluna medias e no caso ele faz uma busca na tabela episódios e monstra os itens que tem valores iguais. O problema e que no caso isso não esta acontecendo gostaria de saber onde e que errei e se alguém poderia me ajudar a consertar o script. Segue abaixo a MySQL e o Script. CREATE TABLE `episodios` ( `id` int(11) NOT NULL AUTO_INCREMENT, `cat` text NOT NULL, `subcat` text NOT NULL, `nome` text NOT NULL, `numero` text NOT NULL, `screen` text NOT NULL, `tamanho` text NOT NULL, `host` text NOT NULL, `url` text NOT NULL, `autor` text NOT NULL, PRIMARY KEY (`id`), KEY `id` (`id`), FULLTEXT KEY `host` (`host`), FULLTEXT KEY `nome` (`nome`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; -- -- Dumping data for table `episodios` -- INSERT INTO `episodios` VALUES(1, '1', '1', 'filme 1', '001', 'imagem', '200mbs', 'Mediafire', 'url', 'Beto'); INSERT INTO `episodios` VALUES(2, '1', '1', 'Filme 2', '002', 'url', '100mbs', 'Mediafire', 'link', 'Beto'); -- -------------------------------------------------------- -- -- Table structure for table `news` -- CREATE TABLE `news` ( `id` int(11) NOT NULL AUTO_INCREMENT, `titulo` text NOT NULL, `noticia` text NOT NULL, `data` date NOT NULL, `autor` text NOT NULL, `avatar` text NOT NULL, `visualizacoes` int(11) NOT NULL, `medias` text, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; -- -- Dumping data for table `news` -- INSERT INTO `news` VALUES(3, 'Segundo Recado', 'Noticia', '2013-05-09', 'Beto', 'url avatar', 0, '1,2'); mysql_connect('localhost','root','') or die (mysql_error()); mysql_select_db("banco") or die (mysql_error()); $id = 1; $sql = mysql_query("SELECT * FROM news WHERE id = '$id'") or die (mysql_error()); while($sql_new = mysql_fetch_array($sql)){ $medias = $sql_new['medias']; } $vetormedias = explode("," , $medias); foreach ($vetormedias as $item) { $sql = mysql_query("SELECT * FROM episodios WHERE id = '$item'") or die (mysql_error()); while($sql_new = mysql_fetch_array($sql)){ $nome = $sql_new['nome']; $host = $sql_new['host']; } print "$nome - $host</br>" } O problema e que ao invés de aparecer os itens fica aparecendo o numero 1 e teria que aparecer os Filmes 1 e 2 assim+ Filme 1 - Mediafire+ Filme 2 - Mediafire Compartilhar este post Link para o post Compartilhar em outros sites
buenoweb 7 Denunciar post Postado Setembro 1, 2013 Verificou os valores escritos no banco? Tente echo. Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo01 1 Denunciar post Postado Setembro 1, 2013 Verificou os valores escritos no banco? Tente echo. Sim eu verifiquei e ja tentei com echo e da a mesmo erro fica aparecendo o numero 1 somente o caso que que tipo deveria estar mostrando os itens com mesmos ids e na tabela news coluna medias os valores 1,2 e na tabela episódios ids 1 - id 2 ai fazer os itens com esses 2 ids aparecerem só isso não acontece de forma alguma. O caso e que os valores estão exatos só que não sei o motivo de estar apresentando essa falha. Você saberia me informar o que esta errado ??? OBS: como falei os valores estão exatos veja só no caso ele deveria esta pegando os valores 1,2 da tabela news coluna medias e comparando com os ids 1 e 2 da tabela episódios coluna id fazendo assim aparecer os 2 itens da forma que falei. Abaixo você poderá ver os valores das tabelas e vera que no caso eles coincidem . INSERT INTO `news` VALUES(3, 'Segundo Recado', 'Noticia', '2013-05-09', 'Beto', 'url avatar', 0, '1,2'); NSERT INTO `episodios` VALUES(1, '1', '1', 'filme 1', '001', 'imagem', '200mbs', 'Mediafire', 'url', 'Beto'); INSERT INTO `episodios` VALUES(2, '1', '1', 'Filme 2', '002', 'url', '100mbs', 'Mediafire', 'link', 'Beto'); Compartilhar este post Link para o post Compartilhar em outros sites
buenoweb 7 Denunciar post Postado Setembro 1, 2013 Eu analisei mais profundamente e notei uma coisa. No bloco: $id = 1; $sql = mysql_query("SELECT * FROM news WHERE id = '$id'") or die (mysql_error()); Vc não inseriu nenhuma linha na tabela news com id = 1 e sim com id = 3. INSERT INTO `news` VALUES(3, 'Segundo Recado', 'Noticia', '2013-05-09', 'Beto', 'url avatar', 0, '1,2'); Se vc usar for no lugar de foreach eu acredito ser melhor, eu particularmente prefiro. Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo01 1 Denunciar post Postado Setembro 1, 2013 Eu analisei mais profundamente e notei uma coisa. No bloco: $id = 1; $sql = mysql_query("SELECT * FROM news WHERE id = '$id'") or die (mysql_error()); Vc não inseriu nenhuma linha na tabela news com id = 1 e sim com id = 3. INSERT INTO `news` VALUES(3, 'Segundo Recado', 'Noticia', '2013-05-09', 'Beto', 'url avatar', 0, '1,2'); Se vc usar for no lugar de foreach eu acredito ser melhor, eu particularmente prefiro. Valeu ai mais ja descobri a bobagem que eu fiz veja so era so eu ter tirado isso o Campo errado $id = 1; $sql = mysql_query("SELECT * FROM news WHERE id = '$id'") or die (mysql_error()); Corrigido $sql = mysql_query("SELECT * FROM news WHERE id") or die (mysql_error()); So tirando isso o código funciono kkkkk o nem percebi mais em todo caso o seu método também funciono grato pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites