Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo01

Erro de Print

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.