Ir ao conteúdo
  • Cadastre-se

Ajuda em desenvolvimento de script PHP


Ryumaru

Posts recomendados

Pois bem pessoal gostaria de saber que poderia me auxiliar a fazer o determinado script eu quero no caso fazer um script em PHP com a seguinte função usando as tabelas mysql abaixo.

CREATE TABLE `conteudo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`texto` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE `news` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`titulo` text NOT NULL,
`noticia` text NOT NULL,
`epis` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Eu quero fazer o seguinte no caso fazer uma função a qual faça uma busca e comparação tipo WHERE `id`='id' ou seja eu quero no caso fazer uma função que faça o seguinte na tabela news campo epis eu quero poder por no caso os dados dessa forma em números, 1,4,5,6 os números no caso separados por vírgulas no caso esses números seriam no caso ids e quero uma função que saiba fazer uma espécie de decodificação ai no caso fazer uma busca na tabela epi campo id ai se o valor for o mesmo dos dados postados na tabela news campo id faça aparecer os dados.

Eu vi um conhecido meu fazer a seguinte função em PHP

function exibe_conteudo($id_noticia){
$ha = mysql_query("SELECT * FROM news WHERE id = '$id_noticia'");
$conteudo = mysql_fetch_array($ha);
if($conteudo['id'] == ""){ }else{
$tags = explode(",", $conteudo['id']);
foreach($tags as $tag){
conteudo_new($tag);
}
}
}

Ai no caso eu fiz uma mais simples so que no caso a minha faz uma where comparando a data da tabela news e da tabela conteúdo se for igual o conteúdo aparece com tudo isso traz complicações pois se eu postar digamos mais de 100 conteúdos num só dia ira aparecer todos eles e isso esta se tornando um transtorno código logo abaixo.

<? $sql = "SELECT * FROM `news` ORDER BY id LIMIT 10";
$query = mysql_query($sql);
while ($news = mysql_fetch_assoc($query)) { ?>

<?php echo $news["texto"]; ?>


<? $sql = "SELECT * FROM `conteudo` WHERE `data`='".$news['data']."' AND `autor`='".$news['autor']."' ORDER BY `id` DESC";
$query = mysql_query($sql);
while ($itens = mysql_fetch_assoc($query)) {


?>

<?php echo $itens ["conteudo"]; ?>

<? } ?>


<? } ?>

Gostaria de saber quem poderia me ajudar pois já tentei em vários outros fóruns e ninguém soube me auxiliar.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • Membro VIP

Não deu pra entender quase nada do que você escreveu.. procure utilizar mais pontuação e novos parágrafos (quando necessário).

Mas se é o que eu entendi, você quer limitar a consulta a tabela "conteudo" de acordo com quantas linhas tiverem na tabela "news" ?

Se for, basta pegar quantas linhas existem na sua consulta da tabela "news", utilizando algo como:

<? $sql = "SELECT * FROM `news` ORDER BY id LIMIT 10";
$query = mysql_query($sql);
$quantidadeLinhas = mysql_num_rows();
while ($news = mysql_fetch_assoc($query)) { ?>

<?php echo $news["texto"]; ?>

E jogar esse valor para a query da tabela "conteudo":

<? $sql = "SELECT * FROM `conteudo` WHERE `data`='".$news['data']."' AND `autor`='".$news['autor']."' ORDER BY `id` DESC [COLOR="Red"][B]LIMIT {$quantidadeLinhas}[/B][/COLOR]";
$query = mysql_query($sql);
while ($itens = mysql_fetch_assoc($query)) {

Link para o comentário
Compartilhar em outros sites

Não deu pra entender quase nada do que você escreveu.. procure utilizar mais pontuação e novos parágrafos (quando necessário).

Mas se é o que eu entendi, você quer limitar a consulta a tabela "conteudo" de acordo com quantas linhas tiverem na tabela "news" ?

Se for, basta pegar quantas linhas existem na sua consulta da tabela "news", utilizando algo como:

<? $sql = "SELECT * FROM `news` ORDER BY id LIMIT 10";
$query = mysql_query($sql);
$quantidadeLinhas = mysql_num_rows();
while ($news = mysql_fetch_assoc($query)) { ?>

<?php echo $news["texto"]; ?>

E jogar esse valor para a query da tabela "conteudo":

<? $sql = "SELECT * FROM `conteudo` WHERE `data`='".$news['data']."' AND `autor`='".$news['autor']."' ORDER BY `id` DESC [COLOR="Red"][B]LIMIT {$quantidadeLinhas}[/B][/COLOR]";
$query = mysql_query($sql);
while ($itens = mysql_fetch_assoc($query)) {

Não e isso que eu quero mais obrigada pela atenção.

O que realmente eu pretendia fazer e isso no caso veja bem não e colocar o valores de quantidade igual que nem você fez mais sim no caso fazer somente conteúdos definidos por ids iguais aparecerem o que eu queria na verdade e fazer uma função a qual ele saiba que ao pegar os valores postos na tabela de news campo epis números separados por vírgula ele faça o navegador por assim dizer acreditar que são valores em ids e fazer a ponto realizar uma comparação de ids com a tabela conteúdo comparando o id dela. Como se fosse assim o

<? $sql = "SELECT * FROM `news` ORDER BY id LIMIT 10";
$query = mysql_query($sql);
while ($news = mysql_fetch_assoc($query)) { ?>

<?php echo $news["texto"]; ?>


<? $sql = "SELECT * FROM `conteudo` WHERE `id`='".$news['epis']."' ORDER BY `id` DESC";
$query = mysql_query($sql);
while ($itens = mysql_fetch_assoc($query)) {


?>

<?php echo $itens ["conteudo"]; ?>

<? } ?>


<? } ?>

Dessa forma no caso ele iria colocar somente para aparecer os itens com mesmo ids certo só que o problema ai com o código acima e o seguinte se você perceber eu não tenho no caso como por na tabela news campo epis valores desta forma 1,2,3,4,5,6,7,8,9,10 tudo isso num só campo por adição e ele realizar uma comparação múltipla usando um só campo com todos os itens na tabela news campo epis e buscar de forma múltipla itens da tabela conteúdo em campos diferentes se baseando pelos valores que ele reconhece como ids mais. Mais o menos desta forma para facilitar estou a por a tabelas com os itens inseridos para você ter uma noção do que estou falando.

CREATE TABLE `conteudo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`img` text NOT NULL,
`num` text NOT NULL,
`nom` text NOT NULL,
`fan` text NOT NULL,
`tam` text NOT NULL,
`up` text NOT NULL,
`filme` int(11) NOT NULL,
`idi` int(11) NOT NULL,
`tipo1` varchar(5) NOT NULL,
`tipo2` varchar(5) NOT NULL,
`mp41` varchar(200) NOT NULL,
`mp42` varchar(200) NOT NULL,
`mp43` varchar(200) NOT NULL,
`for1` varchar(200) NOT NULL,
`for2` varchar(200) NOT NULL,
`for3` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `conteudo`
--

INSERT INTO `epi` VALUES(1, 'img/episodios/01.png', '02', 'teste', 'teste', '20', '10', 396, 1, 'mp4', 'mp4', 'teste', 'teste', 'teste', 'teste', 'teste', 'teste');
INSERT INTO `epi` VALUES(2, 'img/episodios/02.png', '02', 'testando2', 'teste', '20', '10', 396, 1, 'mp4', 'mp4', 'teste', 'teste', 'teste', 'teste', 'teste', 'teste');

-- --------------------------------------------------------

--
-- Table structure for table `news`
--

CREATE TABLE `news` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cat` text NOT NULL,
`titulo` text NOT NULL,
`noticia` text NOT NULL,
`autor` text NOT NULL,
`epis` text NOT NULL,
`filmes` varchar(50) NOT NULL,
`data` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Dumping data for table `news`
--

INSERT INTO `news` VALUES(1, 'lan', 'Testando noticias', '', '10', '1,2', '', '27/07/2013');

O que eu quero e um script mais o menos desta forma

<? $sql = "SELECT * FROM `news` ORDER BY id LIMIT 10";
$query = mysql_query($sql);
while ($news = mysql_fetch_assoc($query)) { ?>

<?php echo $news["texto"]; ?>


<? $sql = "SELECT * FROM `conteudo` WHERE `id`='".$news['epis']."' AND `autor`='".$news['autor']."' ORDER BY `id` DESC";
$query = mysql_query($sql);
while ($itens = mysql_fetch_assoc($query)) {


?>

<?php echo $itens ["conteudo"]; ?>

<? } ?>


<? } ?>

Só que de forma que eu possa por na tabela news campo epis os valores separados por vírgulas e o script saiba fazer busca e comparação fazendo aparecer somente os itens com mesmo id, sendo que no caso ele saiba que todos os valores colocados no campo de epis separados por vírgula ele saiba que são ids r faça uma busca múltipla de acordo com a quantidade de valores posta no caso o seja se eu por assim 1,2,3,4,5,6,7,8,9,10 ele faça uma busca pelos itens da tabela conteúdo e faça aparecer somente os itens que tem ids de 1 a 10. Deu pra entender.

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...