Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde amigos, o site q estou fazendo a url amigavel esta funcionando tudo certo, mas quando resgato os dados da categoria não retorna nada.
onde deve aparecer os dados:
<?php
$servidor = "localhost";
$usuario = "user";
$senha = "senha";
$banco = "bd";
$conexao = mysql_connect($servidor,$usuario,$senha);
mysql_select_db($banco);
$res = mysql_query("SELECT * FROM categorias") or die(mysql_error());
$pagina = explode("/", $_GET['categoria']);
$sub = explode("/", $_GET['sub']);
if ($pagina{1}){
if (empty($sub) || empty($pagina)){?>
<b><center><font color=red>ERRO:</font><br>A página <span><?=$pagina?></span> não existe!</center></b>
<? }
else
{
$idcampo = explode("/", $_GET['sub']);
$Query ="Select * from subcategorias WHERE id = $idcampo";
$resultado = mysql_query($Query);
$campo = mysql_fetch_assoc($resultado);
echo '<div id="breadcrumb"><i>Você está em: <a title="Home" href="./site">Home</a> » <a title="Categoria » '.$campo['categoria'].'" href="?p='.strtolower($campo['categoria']).'">'.ucfirst($campo['categoria']).'</a> » '.ucfirst($campo['nome']).'</i></div>
<p>'.nl2br($campo['descricao']).'<br /><address><a href="java script:history.back(-1)">Voltar</a></address>';
}
}
else
{
print '<span><h3>Desenvolvimento, Tecnologia e Informação, na ponta do lápis.</h3></span>';
}
?>com o codigo acima sem URL amigavel funciona perfeito.como devo fazer para resgatar os dados do bd corretamente?testei mas nao retorna nada.
Então o problema é com o SQL, e não com o PHP.
uso este mesmo SQL para exibir os dados sem o rewrite e funciona perfeito.
se for possivel, tem algum exemplo de como fazer este "resgate" ja feito com o rewrite?
desde já agradeço.
???
Testa a query. Imprime e testa ela. Ou ela funciona ou não funciona.
Estranho isso:
$idcampo = explode("/", $_GET['sub']);Fazendo um: echo $Query; Oque aparece?Como está a tua URL, e qual Rule você usou no .htaccess?
Está funcionando perfeitamente sem rewrite, o problema é que não estou conseguindo resgatar os mesmo valores com rewrite.
modifiquei e surgiu o erro:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\site\index.php on line 146
Unknown column 'calendario' in 'where clause'
quando calendario é a sub-categoria de php
<?php
$res = mysql_query("SELECT * FROM categorias")or die(mysql_error());
$pagina = addslashes($_GET['categoria']);
$sub = addslashes($_GET['sub']);
if ($pagina{1}){
if (empty($sub) || empty($pagina)){?>
<b><center><font color=red>ERRO:</font><br>A página <span><?=$pagina?></span> não existe!</center></b>
<? }
else
{
$Query ="Select * from subcategorias WHERE id = $sub";
$resultado = mysql_query("Select * from subcategorias WHERE id = $sub");
$campo = mysql_fetch_assoc($resultado)or die(mysql_error());
echo '<div id="breadcrumb"><i>Você está em: <a title="Home" href="./site">Home</a> » <a title="Categoria » '.$campo['categoria'].'" href="?p='.strtolower($campo['categoria']).'">'.ucfirst($campo['categoria']).'</a> » '.ucfirst($campo['nome']).'</i></div>
<p>'.nl2br($campo['descricao']).'<br /><address><a href="java script:history.back(-1)">Voltar</a></address>';
}
}
else
{
print '<span><h3>Desenvolvimento, Tecnologia e Informação, na ponta do lápis.</h3></span>';
}
?>
.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^/]*)/$ /site/ [L]
RewriteRule ^categoria/([^/]*)/$ /site/index.php?categoria=$1⊂=$2 [QSA]
#RewriteRule ^([^/]*)\.html$ /site/index.php?categoria=$1⊂=$2 [L]
#RewriteRule ^diversos/([^/]*)\.html$ /site/index.php?diversos=$1 [L]
RewriteRule ^diversos/([^/]*)/$ /site/index.php?diversos=$1⊂=$2 [L]
#Este abixo exibe assim http://localhost/site/php/galaria_de_fotos/
RewriteRule ^categoria/([^/])/([^/])/$ /site/index.php?categoria=$1⊂=$2 [QSA,L]
RESOLVIDO
Depois de tanto percorrer a net a procura finalmente em casa e num sonho (isso mesmo) :blink: , me veio a soluçao.
<?php
function urlAmigavel(){
// - Pega url digitada no navegador
$url_digitada = strip_tags($_SERVER['REQUEST_URI']);
// - Trasnforma em elementos de um array.
$url_array = explode("/", $url_digitada);
// - Exclui o primeiro elemento que está sempre vazio.
array_shift($url_array);
return $url_array;
}
$url = urlAmigavel();
/*
if($url[2] == $url[2]){
echo "Você está em ".$url[2]." - ";
}
else{
echo "Você está em outra categoria";
}*/
if ($url{1}){
if (empty($url[2]) and empty($url[3])){?>
<b><center><font color=red>ERRO:</font><br>A página <span><?=$url[1]?></span> não existe!</center></b>
<? }
else
{
$idcampo = addslashes($url[3]);
$Query ="Select * from subcategorias WHERE categoria = '$url[2]' AND nome = '$url[3]'"; //O meu problema estava aki
$resultado = mysql_query($Query);
$campo = mysql_fetch_assoc($resultado);
print $url[3];
echo '<div id="breadcrumb"><i>Você está em: <a title="Home" href="./site">Home</a> » <a title="Categoria » '.$campo['categoria'].'" href="?p='.strtolower($campo['categoria']).'">'.ucfirst($campo['categoria']).'</a> » '.ucfirst($campo['nome']).'</i>
<p style="background:#f00;">m*****'.nl2br($campo['descricao']).'<br /><address><a href="java script:history.back(-1)">Voltar</a></address></p></div>';
}
}
else
{
print '<span><h3>Desenvolvimento, Tecnologia e Informação, na ponta do lápis.</h3></span>';
}
?>Muito obrigado aos que me ajudaram!
Você testou a query ? chegou a imprimí-la pra ver se está do jeito que você espera ?