Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Ryumaru

Ajuda em desenvolvimento de script PHP

Recommended Posts

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.

Editado por dif
Tag CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites
 

Ainda aguardando ajuda......

Compartilhar este post


Link para o post
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)) {

Compartilhar este post


Link para o post
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.

Editado por Ryumaru

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei entender isso... mas tá difícil.

Por gentileza, melhore sua escrita, como o Lucas lhe recomendou.. seja mais claro e objetivo, evite gírias e cacoetes de fala.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×