Will Up 0 Denunciar post Postado Março 20, 2011 Amigos, estou precisando utilizar isso em um projeto: http://forum.imasters.com.br/topic/402224-otimizando-uma-url/page__view__findpost__p__1576064 Até aí tudo bem funciona perfeitamente, mas e se eu tiver dois tituloAmigavel iguais? Como eu faço para, se já tiver um tituloAmigavel gravado, gravar outro com um número no final? Ex: Se jo-soares já estiver gravado na coluna tituloAmigavel, fica assim se eu tentar gravar outro: jo-soares-2 Como faço? Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Março 20, 2011 Não li o código da página postada, mas já te adianto a seguinte dica: Faça como o nosso próprio forum: Envie o ID junto ao titulo do post na URL. Exemplo: http://forum.imasters.com.br/topic/427312-url-amigavel/ Se eu digito assim: http://forum.imasters.com.br/topic/427312-url-amigavellllll/ Ele me leva para o mesmo tópico, pois o ID é que indica ao servidor qual tópico ele deve buscar no banco de dados. []'s Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Março 20, 2011 Pensei em fazer assim, mas não sei como faço. No INSERT eu faço assim pra gravar o ID: `ID`=''. Como gravo o ID e o link na mesma coluna? Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Março 20, 2011 Você não vai escolher um ID, amigo. O id será gravado com auto-increment normalmente. O que você deve fazer é, ao listar os links, manter um padrão de endereço onde você consiga separar o ID do resto, que para a seleção do BD será inútil. Exemplo: <?php $string = '427312-url-amigavel'; echo $id = (int)array_shift(explode('-', $string)); ?> Resultado: 427312. Depois faça a consulta pelo ID. []'s Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Março 20, 2011 OK, eu gravo o ID e o link, em colunas diferentes, claro. E depois? Abs. Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Março 21, 2011 Matheus, eu entendi o que você quis dizer, mas não sei como gravo o ID e o título juntos (sim, o ID é gravado em uma coluna e o ID+link em outra). Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Março 21, 2011 Matheus, eu entendi o que você quis dizer, mas não sei como gravo o ID e o título juntos (sim, o ID é gravado em uma coluna e o ID+link em outra). Não, não Will. 1 - Você não precisa de uma coluna para ID+link. Somente uma com o ID, e outra com o título, pois veja bem: Você constrói o link para o usuário da forma abaixo, levando em consideração os seguintes pontos: 1 - $id é a variável com o ID da notícia. Exemplo: 42 2 - $titulo é a variável que contém o título. Exemplo: 'Como fazer urls amigáveis' 3 - montaLink é uma função que você deve criar para: retirar acentos, trocar espaços por hífens e retirar caracteres especiais, resultando, no exemplo, nisso: 'como-fazer-urls-amigaveis' <a href="artigo/<?php echo $id . '-' . montaLink($titulo); ?>"><?php echo $titulo; ?></a> Resultado: <a href="artigo/42-como-fazer-urls-amigaveis">Como fazer urls amigáveis</a> Quanto a pessoa acessar a página de artigos, haverá um tratamento da url, onde será verificado da forma que te passei anteiormente qual é o ID do artigo, e será feita uma simples busca ao BD da seguinte forma: $res = mysql_query('SELECT * FROM `artigos` WHERE `id` = '.$id); Depois exiba os dados normalmente. Resumindo: o título da notícia servirá somente para fins "estéticos", uma vez que o sistema precisa apenas do ID para funcionar. Essa é uma maneira de se fazer. Eu acho muito melhor que ficar guardando no bd todos os links, e ainda ter o risco de o sistema ser vulnerável à falhas. []'s Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Março 21, 2011 Ótima explicação, Matheus, vou fazer assim mesmo. Abraços e obrigado. Compartilhar este post Link para o post Compartilhar em outros sites