cybertec 0 Denunciar post Postado Janeiro 23, 2012 Estou trabalhando no desenvolvimento de portal que terá grande quantidade de material, paginas de classificados, noticias, lista comercial, agenda de eventos, galeria de fotos cada uma tem sua própria tabela . Estou querendo ter uma pagina single.php porem eu quero que essa pagina single possa identidicar de qual tabela ela deve puxar o conteúdo para exibição. Sei que poderia apenas criar uma tabela post com um campo de categoria porem isso deixaria meu banco de dados muito poluído e enorme. Ficarei grato se alguém poder me ajudar. Segue abaixo o código da pagina single.php <?php include_once("config.php");?> <div id="page"> <div id="full_banner_1"> <p><img src="<?php echo $urlbase_config;?>/images/publicidade_left1.gif" title="" alt="" /></p> <object id="FlashID2" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="728" height="95"> <param name="movie" value="<?php echo $urlbase_config;?>/swf/728x90_ultimo_novo_vestibular.swf" /> <param name="quality" value="high" /> <param name="wmode" value="opaque" /> <param name="swfversion" value="6.0.65.0" /> <!-- This param tag prompts users with Flash Player 6.0 r65 and higher to download the latest version of Flash Player. Delete it if you don't want users to see the prompt. --> <param name="expressinstall" value="<?php echo $urlbase_config;?>/scripts/expressInstall.swf" /> <!-- Next object tag is for non-IE browsers. So hide it from IE using IECC. --> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="<?php echo $urlbase_config;?>/swf/728x90_ultimo_novo_vestibular.swf" width="728" height="95"> <!--<![endif]--> <param name="quality" value="high" /> <param name="wmode" value="opaque" /> <param name="swfversion" value="6.0.65.0" /> <param name="expressinstall" value="<?php echo $urlbase_config;?>/scripts/expressInstall.swf" /> <!-- The browser displays the following alternative content for users with Flash Player 6.0 and older. --> <div> <h4>Content on this page requires a newer version of Adobe Flash Player.</h4> <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" width="112" height="33" /></a></p> </div> <!--[if !IE]>--> </object> <!--<![endif]--> </object> </div><!---fim full banner----> <div id="publididade_page">Publicidade</div> <?php $slq = mysql_query("SELECT * FROM noticias WHERE catSlug = '$arquivo' AND tituloSlug = '$post' ") or die(mysql_error()); while($res = mysql_fetch_array($slq)){ $images = $res['images']; $titulo = $res['titulo']; $tituloSlug = $res['tituloSlug']; $descricao = $res['descricao']; $data = $res['data']; $categoria = $res['categoria']; $catSlug = $res['catSlug']; $tags = $res['tags']; $tagsSlug = $res['tagsSlug']; ?> <div id="content"> <ul> <li><?php echo $titulo;?></li> < li > <img src="<?php echo $urlbase_config;?>/timthumb.php?src=<?php echo $urlbase_config;?>/upload_noticias/<?php echo $images;?>&h=320&w=500&zc=0" title="<?php echo $titulo;?>" alt="<?php echo $titulo;?>" /> </ li > < li ><?php echo $descricao;?></ li > </ul> <?php } ?> </div><!---content---> </div><!---page---> Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Janeiro 23, 2012 você pode indicar na url o q ele deve puxar do banco, ae você cria um link com query string single.php?action=ler&tabela=classificados&id=171 ae você puxa os 'action','tabela','id' por $_GET....$_GET['action'] etc...ae você joga na query do mysql... Compartilhar este post Link para o post Compartilhar em outros sites
cybertec 0 Denunciar post Postado Janeiro 23, 2012 estou usando url amigavel Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Janeiro 23, 2012 estou usando url amigavel ai fica dificel, url amigável as vezes não é um bom negócio para portais Compartilhar este post Link para o post Compartilhar em outros sites
cybertec 0 Denunciar post Postado Janeiro 23, 2012 Sei que poderia apenas criar uma tabela post com um campo de categoria selecionar atravez da categoria porem isso deixaria meu banco de dados muito poluído e enorme. Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Janeiro 23, 2012 você pode usar o htaccess rewriterule ^single.php\/(.*)$ /single.php?action=$1&tabela=$2&id=$3 ae você digita single.php/ler/classificados/171 e pega por get no single, eh so ler mais um pouco sobre url amigaveis... PS nao tenho certeza se a regra acima esta correta, mas tenho certeza q esta eh a solucao... Compartilhar este post Link para o post Compartilhar em outros sites
cybertec 0 Denunciar post Postado Janeiro 23, 2012 Eu vou ter que alterar o mode reescrita do site. certo? Meu arquivo .htaccess hoje esta dessa forma: RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 Então devo adicionar mais regras. Como vou fazer isso??? Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Janeiro 24, 2012 nada, o seu htaccess ja faz pra você...ele ja pega tudo e transforma em query string entao no php você so precisa fazer isto if(isset($_GET['url']) && !empty($_GET['rul'])) { $params = explode('/',$_GET['url']); $action = isset($params[0]) && !empty($params[0]) ? $params[0] : null; $tabela = isset($params[1]) && !empty($params[1]) ? $params[1] : null; $id = isset($params[2]) && !empty($params[2]) ? $params[2] : null; } //agora você pode usar o if pra ver se cada uma das variaveis ($action,$tabela, e id foram inicializadas) e usar na sua query ao mysql Compartilhar este post Link para o post Compartilhar em outros sites
cybertec 0 Denunciar post Postado Janeiro 24, 2012 Esse script eu devo usar em qual pagina na index ou na single? Segue a abaixo o script da pagina index.php <?php $url = $_GET['url']; $urlE = explode('/', $url); $arquivo = $urlE['0']; $post = $urlE['1']; $search = $_GET['s']; $paginas = array('galeria', 'agenda', 'noticias', 'cadastrar-empresa', 'quem-somos', 'contato');////adiciona as paginas estaticas if(isset($_GET['s']) && $_GET['s'] != ''){ include "search.php"; }elseif(isset($arquivo) && $arquivo == 'arquivos'){ include "arquivo.php"; }elseif(isset($post) && $post != ''){ include "single.php"; }elseif(isset($arquivo) && in_array($arquivo, $paginas)){ include "$arquivo.php"; }elseif(isset($arquivo) && $arquivo == ''){ include "home.php"; }else{ include "categoria.php"; } ?> Se tiver alguma sugestão para melhorar meu codigo. obrigado Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Janeiro 24, 2012 por acaso você esta usando o wordpress...? se estiver posso indicar coisas mais rapidas, como funcoes proprias do wordpress pra determinadas tarefas... Compartilhar este post Link para o post Compartilhar em outros sites
cybertec 0 Denunciar post Postado Janeiro 24, 2012 Não estou utilizando o wordpress. Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Janeiro 25, 2012 Esse script eu devo usar em qual pagina na index ou na single? se seu htaccess esta redirecionando todas as requisicoes para a index, você deve por, entao, na index Compartilhar este post Link para o post Compartilhar em outros sites
cybertec 0 Denunciar post Postado Janeiro 26, 2012 certo vou fazer alguns testes com script que você me passou. depois posto resultados e duvidas. obrigado pela ajuda. if(isset($_GET['url']) && !empty($_GET['rul'])) { $params = explode('/',$_GET['url']); $action = isset($params[0]) && !empty($params[0]) ? $params[0] : null; $tabela = isset($params[1]) && !empty($params[1]) ? $params[1] : null; $id = isset($params[2]) && !empty($params[2]) ? $params[2] : null; } //agora você pode usar o if pra ver se cada uma das variaveis ($action,$tabela, e id foram inicializadas) e usar na sua query ao mysql Não consegui formular o codigo. da uma olhada no meu arquivo index.php <?php include_once("topo.php"); ?> <div id="conteudo"> <?php $url = $_GET['url']; $urlE = explode('/', $url); $arquivo = $urlE['0']; $post = $urlE['1']; $search = $_GET['s']; $paginas = array('galeria', 'agenda', 'noticias', 'cadastrar-empresa', 'quem-somos', 'contato');////adiciona as paginas q ñ tem sub conteudo if(isset($_GET['s']) && $_GET['s'] != ''){ include "search.php"; }elseif(isset($arquivo) && $arquivo == 'arquivos'){ include "arquivo.php"; }elseif(isset($post) && $post != ''){ include "single.php"; }elseif(isset($arquivo) && in_array($arquivo, $paginas)){ include "$arquivo.php"; }elseif(isset($arquivo) && $arquivo == ''){ include "home.php"; }else{ include "categoria.php"; } ?> </div><!---Fim do conteudo---> <?php include_once("rodape.php"); ?> Agradeço desde a ajuda que estou recebendo. Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Janeiro 26, 2012 o que aconteceu? que erro deu? primeiro você precisa validar o q esta recebendo e você nao esta validando, veja q eu fiz operadores ternarios, ou seja, de uma froma bem simples eu validei o valor recebido por $_GET['url'], você nao...por ser q get url nao tenha recebido nada, dae ele nao faz nada mesmo...outra coisa, ao invez de usar if elseif varia vezes, use switch, isto deixa mais limpo e mais rapido... Compartilhar este post Link para o post Compartilhar em outros sites
cybertec 0 Denunciar post Postado Fevereiro 1, 2012 o que aconteceu? que erro deu? primeiro você precisa validar o q esta recebendo e você nao esta validando, veja q eu fiz operadores ternarios, ou seja, de uma froma bem simples eu validei o valor recebido por $_GET['url'], você nao...por ser q get url nao tenha recebido nada, dae ele nao faz nada mesmo...outra coisa, ao invez de usar if elseif varia vezes, use switch, isto deixa mais limpo e mais rapido... Você poderia me dar um exmplo mais claro. Obrigado pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Fevereiro 1, 2012 operador ternario $var = isset($_GET['some']) ? $_GET['some'] : false; http://forum.imasters.com.br/blog/193/entry-122-tutorial-basico-de-url-amigaveis-vhost/ Compartilhar este post Link para o post Compartilhar em outros sites