Danilo CS 2 Denunciar post Postado Janeiro 25, 2017 Olá! Devido a correria do dia-a-dia eu não vou poder tentar fazer isso por meio de erros e acertos porque isso leva muito tempo, então eu queria uma dica. Eu fiz um sisteminha bem simples de notícias. O sistema começa aqui: http://www.superdanilof1page.com.br/noticias/formula-1-noticias.php Embora o link de cada notícia eu tenha feito no banco de dados, a página que recebe o link eu fiz manualmente e não por BD. Mas algumas informações da página, como títulos, link de fotos e essas coisas eu fiz no banco de dados. Exemplo: http://www.superdanilof1page.com.br/noticias/f1-noticias-felipe-massa-o-carro-e-meu.php Esta é uma página independente, porém, o titulo, fotos, palavras-chave, etc, é baseada no banco de dados. Para que isso ocorra eu chamo a tabela dessa forma: $qr = mysql_query("SELECT * FROM noticias WHERE id_noticias='12'"); Até aí blz. Mas para que cada página funcione corretamente, cada vez que eu faço uma nova notícia eu tenho que manualmente alterar a "id_noticias". Eu queria saber se, mesmo usando esse sistema misto, se é possível ao clicar no link (nos moldes que fiz) e automaticamente entrar na id correspondente à notícia, sabe? Será que assim funcionaria? session_start(); $qr = mysql_query("SELECT * FROM noticias WHERE id_noticias='{$_GET['id_noticias']}' "); É que faz muito tempo que eu não mexo com isso, então não sei se daria e nem como fazer para ele reconhecer direitinho a ID correspondente. Tem outro jeito de fazer, mas por hora eu não quero. De criar uma página única para receber todas as notícias e colocar a id no link. É que ai tem que mexer naqueles negócio de url_amigavel e num sei o que. Daí eu acho que vou perder muito tempo... Se for possível isso tudo bem, senão eu vou me virando do jeito que está... Muito obrigado... Compartilhar este post Link para o post Compartilhar em outros sites
Ledson Silva 1 Denunciar post Postado Janeiro 25, 2017 Pelo que entendi você toda vez que adiciona uma noticia, precisa criar uma pagina php dentro na pasta /noticias com a query informando o ID da noticia que acabastes de criar? o bom seria usar url amigável, e ter somente 1 arquivo para gerenciar isto. agora uma solução simples que resolveria seu problema, é gerar essa pagina PHP quando criar a noticias. faz um script que grave este page php na pasta /noticia com o respectivo ID na query! Compartilhar este post Link para o post Compartilhar em outros sites
Danilo CS 2 Denunciar post Postado Janeiro 25, 2017 È isso mesmo... Então se for para assim somente com 1 arquivo, ai tem que fazer URL amigável e mais um monte de coisas. Se até ai eu levei 2 dias inteiros para montar, imagina se fosse para criar URL amigável. Eu aprendi a mexer com PHP recentemente, mas logo depois não usei mais, daí já viu né? Eu não entendi bem isso: faz um script que grave este page php na pasta /noticia com o respectivo ID na query! Como assim? Compartilhar este post Link para o post Compartilhar em outros sites
Ledson Silva 1 Denunciar post Postado Janeiro 25, 2017 Seguinte, O código que você usa pra adicionar a noticia, você aproveita retorna o ID do insert e grava o arquivo na pasta. usando a função de arquivo do PHP fopen etc.... entendeu? ao inves de você criar este arquivo manualmente, o script que adiciona as noticias grave pra você. Compartilhar este post Link para o post Compartilhar em outros sites
Danilo CS 2 Denunciar post Postado Janeiro 25, 2017 No caso eu criaria um codigo para ele gerar as páginas com o Fopen (eu tenho pesquisar o que seria isso) e incluíria a ID da linha? Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Janeiro 25, 2017 Será que assim funcionaria? session_start();$qr = mysql_query("SELECT * FROM noticias WHERE id_noticias='{$_GET['id_noticias']}' "); Bom vamos por partes. A parte de URL amigável é totalmente dispensável, é apenas um 'PLUS', realmente exige conhecimento de apache e domínio de expressão regular (ou deveria hehe) Desde os primórdios da Internet qnd era tudo Mato, AOL, e-mail do bol e ICQ só existia requisições HTTP sem frescura sem piedade. (ou sem url amigável hehe) Um exemplo de requisição http com método GET: http://www.superdanilof1page.com.br/noticias/noticias.php?id_noticias=1 ... Assim na sua 'pagina' noticias.php você sempre vai receber um parametro via GET. echo $_GET['id_noticias']; // Vai exibir 1 (correspondente a esse trecho ?id_noticias=1) A brincadeira é que você pode passar vários parâmetros na URL usando um simples & (e comercial) Exemplo: http://www.superdanilof1page.com.br/noticias/noticias.php?id_noticias=1&usuario_logado=0 Enfim... acho q deu pra pegar. Recomendo a leitura: http://php.net/manual/pt_BR/reserved.variables.get.php Agora eu que fiquei com duvidas a respeito disso: Eu queria saber se, mesmo usando esse sistema misto, se é possível ao clicar no link (nos moldes que fiz) e automaticamente entrar na id correspondente à notícia, sabe? Sobre o receber o parâmetro dinamicamente usando a ideia acima é possível. Porem eu não entendi a sua estrutura mista. Até aí blz. Mas para que cada página funcione corretamente, cada vez que eu faço uma nova notícia eu tenho que manualmente alterar a "id_noticias". Como você adiciona uma noticia nova? Sobe uma pagina literalmente .php pelo FTP? Caso sim por que a necessidade de usar um sistema de id para noticia? Da um exemplo ai pra gente hehe. Ps: Reparei que tu tem um session_start(); Ai no seu código, se usa uma variavel $_SESSION em algum momento?! Caso não retira isso ai que só vai te confudir. Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Janeiro 25, 2017 Dica 1: Recomendo evitar o uso de mysql_* pois está descontinuado. Use mysqli_* ou PDO. Segue tutorial do Beraldo: http://rberaldo.com.br/como-atualizar-php-mysql-mysqli/ Dica 2: Sei que é apenas um exemplo, porem veja a parte de seguraça, seu script esta com vunerabilidade a SQL Injection Leia: http://php.net/manual/pt_BR/security.database.sql-injection.php Compartilhar este post Link para o post Compartilhar em outros sites
Danilo CS 2 Denunciar post Postado Janeiro 26, 2017 Como você adiciona uma noticia nova? Sobe uma pagina literalmente .php pelo FTP? Caso sim por que a necessidade de usar um sistema de id para noticia? Da um exemplo ai pra gente hehe. A página painel é essa aqui http://superdanilof1page.com.br/painel/noticias.php Eu ainda não coloquei a senha. Eu crio a página manualmente e subo em ftp. Eu "Salvo Como" a notícia anterior para pegar a estrutura e faço a notícia nova por cima. Eu fiz meio BD e meio "FTP" porque quando eu fazia tudo manualmente, eu perdia muito tempo para criar links, fazer o resumo da notícia para colocar na pagina e no meta-tag description, colocar data, link das imagens, palavra-chave, titulo. E ainda eu me enrrolava e acaba esquecendo ou escrevia errado alguma coisa. Daí perdia mó tempão. Por exemplo o título, eu tinha que digitar, depois copiar para a tag title e depois copiar para a página de lista de notícias. entende? Com o BD, eu só preciso escrever uma vez e já aparece em todos os lugares. Exemplo: O nome da minha notícia vai ser "Massa F1". Então eu teria que copiar em: <title>Massa F1</title> na página da notícia; <h1>Massa F1</h1> na página da notícia; <h2>Massa F1</h2>na página da lista das notícias; Ao inves desse trabalhão com o BD eu fiz uma simples variavel: $titulo = $qr_l['titulo'] // Com isso aparece o título aonde eu quiser que apareça em qualquer página que eu chamar o sql <h1><?php echo $titulo?>/// E chamava assim dentro do HTML Um exemplo na prática: Tema da notícia: Felipe Massa: “O carro é meu” Exatamente esse título vai aparecer em http://www.superdanilof1page.com.br/noticias/f1-noticias-felipe-massa-o-carro-e-meu.php http://www.superdanilof1page.com.br/noticias/formula-1-noticias.php e http://www.superdanilof1page.com.br/index.php Se não fosse o BD eu teria que copiar 3x manualmente esse título, assim como todo o resto. Esse sisteminha "misto" facilitou muito na hora de publicar a matéria. Entendeu mais ou menos? Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Janeiro 26, 2017 Sim, porem ainda acho que vale a pena deixar tudo 100% pelo DB, evitando o uso de FTP. Se liga um exemplo toscão como ficaria a HOME: <?php //Exemplo da HOME listando as ultimas 3 noticias: $noticias = mysql_fetch_array('SELECT * FROM noticia order by id_noticia desc LIMIT 3'); //Execute bla bla bla foreach($noticias as $noticia){ echo $noticia['titulo']; echo $noticia['conteudo']; //Campo TEXT echo $noticia['autor']; //Campo TEXT echo $noticia['data_criacao']; //Campo DATETIME } E agora uma pagina dinâmica 'noticia.php': <?php //Exemplo de uma pagina de noticia: $id = $_GET['id']; // $noticia = mysql_fetch_row('SELECT * FROM noticia where id_noticia = $id'); //Execute bla bla bla ?> <meta name="description" content="" <?php echo $noticia['meta_description']; ?>/> <h1><?php echo $noticia['titulo']; ?></h1> <?php echo $noticia['conteudo']; ?> <hr /> <?php echo $noticia['autor'];?> <br /> Criado em: <?php echo $noticia['data_criacao']; ?> <hr /> Posts Relacionados: <?php $noticias_relacionadas = mysql_fetch_array("SELECT * FROM noticia order by id_noticia where categoria = 'F1'"); /* ou Melhor ainda... esse F1 poderia ser dinamico saca? $noticias_relacionadas = mysql_fetch_array("SELECT * FROM noticia order by id_noticia where categoria = '". $noticia['categoria_id'] . '"); */ foreach($noticias_relacionadas as $noticia_row){ echo $noticia_row['titulo']; echo '<br />'; echo $noticia_row['conteudo']; //Campo TEXT echo '<br />'; echo $noticia_row['autor']; //Campo TEXT echo '<br />'; echo $noticia_row['data_criacao']; //Campo DATETIME echo '<hr />'; } Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Janeiro 26, 2017 Se tu tem todos os campos certinho no DB, acho q vale a pena estudar a possibilidade. Ps: url amigável no seu contexto é perfumaria. Arruma a 'casa' depois se pensa nisso Compartilhar este post Link para o post Compartilhar em outros sites
Danilo CS 2 Denunciar post Postado Janeiro 26, 2017 Ow Gabriel obrigado pela dica! Eu vou considerar essa possibilidade. Quer dizer eu já estava pensando nisso, vou pensar um pouco mais... Agora me explica essa história (já que você tocou no assunto hehe): Está sendo descontinuado o Mysql? Porque? Agora que estou aprendendo a usar, estão parando?! Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Janeiro 26, 2017 Leia:http://rberaldo.com.br/mysql-obsoleto-php/ Pouca coisa é alterada. Leia o passo a passo do Beraldo que passei no #7, explica legal. (Porem eu particularmente acho o PDO bem mais legal hehe) Agora que estou aprendendo a usar, estão parando?! Uma das coisas ruins de você utilizar uma biblioteca que não tem suporte a futuras versões, é que amanha ou depois você migra para um servidor php 7+ (que tem uma performance bem superior). Acaba ficando refém do próprio código hehe. Porem nada impede de você continuar a usar. Compartilhar este post Link para o post Compartilhar em outros sites
Danilo CS 2 Denunciar post Postado Janeiro 26, 2017 É uma dureza mexer com a WEB, as coisas mudam muito rápido.... Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Janeiro 26, 2017 Caso sua duvida tenha sido sanada. Favor encerrar o tópico (de preferencia com a relação do titulo do post) para facilitar o SEO ou mecanismo de busca do fórum :D Abs Compartilhar este post Link para o post Compartilhar em outros sites
Danilo CS 2 Denunciar post Postado Janeiro 26, 2017 Valeu Gabriell Compartilhar este post Link para o post Compartilhar em outros sites