João M. 1 Denunciar post Postado Abril 25, 2011 Vitor Cometti, mas o meu problema não esta sendo mostrar o detalhes por enquanto, se eu colocar o código do if isset() a pagina portfolio não aparece conteudo, e note que eu estou passando algo na url aqui nesse trecho, para mostrar os detalhes de tal ID, olhe.. <a href="?pg=portfolio&funcao=detalhes&id=<?php echo $pega_id ?>"> Veja o exemplo na foto: http://www.speedyshare.com/files/28142971/exemplo.gif Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 25, 2011 você sabe o q faz a função isset()?? Compartilhar este post Link para o post Compartilhar em outros sites
João M. 1 Denunciar post Postado Abril 25, 2011 Sim, ela verifica se estou passando algo pela URL, se eu passar na url que funcao = detalhes ela mostra uma coisa, else (se não) ela mostra outra, ou posso fazer assim também, se eu passar na url que funcao != detalhes ela mostra uma coisa, else (se não) mostra outra. Compartilhar este post Link para o post Compartilhar em outros sites
João M. 1 Denunciar post Postado Abril 25, 2011 Olhe como esta o código agora, era pra estar certo, mas não aparece conteúdo na pagina portfólio, não entendo o porque! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <?php include "css.php"; include "config.php"; ?> <body> <div id="fundo_paginas"> <div id="geral_conteudo"> <?php include "menu.php"; ?> <div id="div_geral_banner"> <div id="banner_direita"> <div id="titulo_banner_right"> <div id="texto_banner"> Destaques </div><!-- texto_banner --> <div id="banner_right"> </div><!-- banner_right --> </div><!-- titulo_banner_right --> <div id="div_banner_promo"> <div id="banner_promo"> <div id="titulo_promo"> Promoção </div><!-- titulo_promo --> </div><!-- banner_promo --> </div><!-- div_banner_promo --> </div><!-- banner_direita --> </div><!-- div_geral_banner --> <div id="fundo_conteudo"> <div id="area_conteudo"> <div id="titulo_conteudo"> <div id="texto_titulo"> Portifólio </div> <!--texto_titulo --> </div> <!--titulo_conteudo --> <div id="conteudo2"> <div id="img_conteudo"> <div id="conteudo"> <?php if(isset($_GET['funcao'])){//verifica se existe if($_GET['funcao'] != "detalhes"){//se diferente de detalhes $sql_vizualizar = "SELECT * FROM portfolio ORDER BY id"; $query = mysql_query($sql_vizualizar) or exit(mysql_error()); while($linha = mysql_fetch_array($query)){ $pega_imagem = $linha['imagem']; $pega_descricao = $linha['descricao']; $pega_titulo = $linha['titulo']; $pega_id = $linha['id']; ?> <div id="trabalhos"> <div class="titulo_trabalho"> <div class="texto_titulo_trabalho"> <?php echo $pega_titulo ?> </div><!-- texto_titulo_trabalho --> </div><!-- titulo_trabalho --> <div class="foto_trabalho"> <img src="imagens/<?php echo $pega_imagem ?>" width="160" height="179" alt="" /> </div> <!-- foto_trabalho --> <div class="descricao_trabalho"> <?php echo $pega_descricao ?> </div> <!-- descricao_trabalho --> <a href="?pg=portfolio&funcao=detalhes&id=<?php echo $pega_id ?>"> <div class="menu_trabalhos"> <div style="margin-top:60px; margin-left:10px;"><img src="imagens/botao_info.png"/></div> </div> <!-- menu_trabalhos --> </a> </div> <!-- trabalhos --> <?php } ?> <?php }else{ $pega_id = $_GET['id']; $sql = mysql_query("SELECT * FROM portfolio where id ='$pega_id'"); while($linha = mysql_fetch_array($sql)){ } ?> <div id="detalhes"> Aqui dentro vai o conteudo dos detalhes </div> <?php } ?> <?php } ?> </div> <!-- conteudo --> </div> <!-- img_conteudo --> </div> <!-- conteudo2 --> </div> <!-- area_conteudo --> </div> <!-- fundo_conteudo --> <div style="clear:both"></div> </div> <!-- geral_conteudo --> </div><!-- fundo_paginas --> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 25, 2011 veja se ajuda if(isset($_GET['funcao'])){//verifica se foi passada a variavel funcao na URL if($_GET['funcao'] == "detalhes"){//se a variável funcao for igual a detalhes //aki seu código }else{// se funcao for diferente de detalhes //aki seu código } }else{//se não for passada variáavel funcao na URL //aki seu código } Compartilhar este post Link para o post Compartilhar em outros sites
João M. 1 Denunciar post Postado Abril 25, 2011 Coloquei como você sugeriu, e agora mostro conteúdo normal do portfolio e mostrou isso no topo do conteudo: Notice: Undefined index: funcao in C:\wamp\www\portifolio.php on line 59 Porém se eu clicar pra mostrar detalhes ele volta pra pagina inicial index.php com esta url la encima http://localhost/index.php?pg=portfolio&funcao=detalhes&id=1 Veja como ficou o código: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <?php include "css.php"; include "config.php"; ?> <body> <div id="fundo_paginas"> <div id="geral_conteudo"> <?php include "menu.php"; ?> <div id="div_geral_banner"> <div id="banner_direita"> <div id="titulo_banner_right"> <div id="texto_banner"> Destaques </div><!-- texto_banner --> <div id="banner_right"> </div><!-- banner_right --> </div><!-- titulo_banner_right --> <div id="div_banner_promo"> <div id="banner_promo"> <div id="titulo_promo"> Promoção </div><!-- titulo_promo --> </div><!-- banner_promo --> </div><!-- div_banner_promo --> </div><!-- banner_direita --> </div><!-- div_geral_banner --> <div id="fundo_conteudo"> <div id="area_conteudo"> <div id="titulo_conteudo"> <div id="texto_titulo"> Portifólio </div> <!--texto_titulo --> </div> <!--titulo_conteudo --> <div id="conteudo2"> <div id="img_conteudo"> <div id="conteudo"> <?php if(!isset($_GET['funcao'])){//verifica se existe if($_GET['funcao'] != "detalhes"){//se diferente de detalhes $sql_vizualizar = "SELECT * FROM portfolio ORDER BY id"; $query = mysql_query($sql_vizualizar) or exit(mysql_error()); while($linha = mysql_fetch_array($query)){ $pega_imagem = $linha['imagem']; $pega_descricao = $linha['descricao']; $pega_titulo = $linha['titulo']; $pega_id = $linha['id']; ?> <div id="trabalhos"> <div class="titulo_trabalho"> <div class="texto_titulo_trabalho"> <?php echo $pega_titulo ?> </div><!-- texto_titulo_trabalho --> </div><!-- titulo_trabalho --> <div class="foto_trabalho"> <img src="imagens/<?php echo $pega_imagem ?>" width="160" height="179" alt="" /> </div> <!-- foto_trabalho --> <div class="descricao_trabalho"> <?php echo $pega_descricao ?> </div> <!-- descricao_trabalho --> <a href="?pg=portfolio&funcao=detalhes&id=<?php echo $pega_id ?>"> <div class="menu_trabalhos"> <div style="margin-top:60px; margin-left:10px;"><img src="imagens/botao_info.png"/></div> </div> <!-- menu_trabalhos --> </a> </div> <!-- trabalhos --> <?php } ?> <?php }else{ $pega_id = $_GET['id']; $sql = mysql_query("SELECT * FROM portfolio where id ='$pega_id'"); while($linha = mysql_fetch_array($sql)){ } ?> <div id="detalhes"> Aqui dentro vai o conteudo dos detalhes </div> <?php } ?> <?php }else{ } ?> <div id="detalhes"> Nao foi passada url </div> </div> <!-- conteudo --> </div> <!-- img_conteudo --> </div> <!-- conteudo2 --> </div> <!-- area_conteudo --> </div> <!-- fundo_conteudo --> <div style="clear:both"></div> </div> <!-- geral_conteudo --> </div><!-- fundo_paginas --> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 25, 2011 você não está entendendo o que você está fazendo olha isso aqui if(!isset($_GET['funcao'])){//verifica se existe isso significa que vai entrar no if não existir a variável funcao, observe a exclamação '!' que você colocou antes do isset qual seu conhecimento de linguagem de programação??? Compartilhar este post Link para o post Compartilhar em outros sites
João M. 1 Denunciar post Postado Abril 25, 2011 Ali a lógica é que se não estiver setado (!isset) a variavel vai mostrar um conteudo, else (se não) mostra outra, não pode ser assim? Compartilhar este post Link para o post Compartilhar em outros sites
Deleu 0 Denunciar post Postado Abril 25, 2011 Veja o que você mesmo falou: Se não estiver setado (!isset) a variável vai mostrar um conteúdo[...] Pergunta: Como você vai mostrar o conteúdo se NÃO está setado? Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 25, 2011 caro Deleu exclamação ! é o operador de negação equivale ao not em outras linguagens de programação a função isset() retorna verdadeiro ou falso e operador ! na frente assim !isset() vai retorna o inverso leia http://www.php.net/manual/pt_BR/language.operators.comparison.php agora respondendo a sua pergunta if(isset($variavel)){//se existir $variável //aqui o código }else{//se não existir //aqui o código } ou if(!isset($variavel)){//se não existir $variável //aqui o código }else{//se existir //aqui o código } João, no seu caso parece que você está com dificuldade em entender os ifs aninhados if(condição1){ if(condição2){//só chega nessa condição se entrar na condição1 }//fim da condição2 else{//se a condição2 for falsa }//fim do else }//fim da condição1 else{//se a condição1 for falsa entra aqui } dê uma lida no manual sobre o assunto aqui Compartilhar este post Link para o post Compartilhar em outros sites
João M. 1 Denunciar post Postado Abril 26, 2011 Bom na verdade encurtei o código e simplifiquei, deixei assim e funcionou, apenas agora ta aparecendo um errinho no topo e embaixo do conteudo: Notice: Undefined index: funcao in C:\wamp\www\portfolio.php on line 58 Conteudo Notice: Undefined index: funcao in C:\wamp\www\portfolio.php on line 93 Código ficou assim: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <?php include "css.php"; include "config.php"; ?> <body> <div id="fundo_paginas"> <div id="geral_conteudo"> <?php include "menu.php"; ?> <div id="div_geral_banner"> <div id="banner_direita"> <div id="titulo_banner_right"> <div id="texto_banner"> Destaques </div><!-- texto_banner --> <div id="banner_right"> </div><!-- banner_right --> </div><!-- titulo_banner_right --> <div id="div_banner_promo"> <div id="banner_promo"> <div id="titulo_promo"> Promoção </div><!-- titulo_promo --> </div><!-- banner_promo --> </div><!-- div_banner_promo --> </div><!-- banner_direita --> </div><!-- div_geral_banner --> <div id="fundo_conteudo"> <div id="area_conteudo"> <div id="titulo_conteudo"> <div id="texto_titulo"> Portifólio </div> <!--texto_titulo --> </div> <!--titulo_conteudo --> <div id="conteudo2"> <div id="img_conteudo"> <div id="conteudo"> <?php if($_GET['funcao'] != "detalhes"){ $sql_vizualizar = "SELECT * FROM portfolio ORDER BY id"; $query = mysql_query($sql_vizualizar) or exit(mysql_error()); while($linha = mysql_fetch_array($query)){ $pega_imagem = $linha['imagem']; $pega_descricao = $linha['descricao']; $pega_titulo = $linha['titulo']; $pega_id = $linha['id']; ?> <div id="trabalhos"> <div class="titulo_trabalho"> <div class="texto_titulo_trabalho"> <?php echo $pega_titulo ?> </div><!-- texto_titulo_trabalho --> </div><!-- titulo_trabalho --> <div class="foto_trabalho"> <img src="imagens/<?php echo $pega_imagem ?>" width="160" height="179" alt="" /> </div> <!-- foto_trabalho --> <div class="descricao_trabalho"> <?php echo $pega_descricao ?> </div> <!-- descricao_trabalho --> <a href="?pg=portfolio&funcao=detalhes&id=<?php echo $pega_id ?>"> <div class="menu_trabalhos"> <div style="margin-top:60px; margin-left:10px;"><img src="imagens/botao_info.png"/></div> </div> <!-- menu_trabalhos --> </a> </div> <!-- trabalhos --> <?php } ?> <?php } ?> <?php if($_GET['funcao'] == "detalhes"){ $pega_id = $_GET['id']; $sql = mysql_query("SELECT * FROM portfolio where id ='$pega_id'"); while($linha = mysql_fetch_array($sql)){ $pega_imagem = $linha['imagem']; $pega_descricao = $linha['descricao']; $pega_titulo = $linha['titulo']; $pega_id = $linha['id']; } ?> <div id="detalhes"> <?php echo $pega_descricao ?> </div> <?php } ?> </div> <!-- conteudo --> </div> <!-- img_conteudo --> </div> <!-- conteudo2 --> </div> <!-- area_conteudo --> </div> <!-- fundo_conteudo --> <div style="clear:both"></div> </div> <!-- geral_conteudo --> </div><!-- fundo_paginas --> </body> </html> Alguma sugestão de como remover estas Notificações? (tem como tirar pelo php.ini, mas queria resolver sem ter que mexer lá). Compartilhar este post Link para o post Compartilhar em outros sites
jonata 0 Denunciar post Postado Abril 26, 2011 a função tem de existir antes de ser requisitada: ex.: function NOME(){}; chamo depois.... NOME(); você pode deixar de exibir erros colocando no inicio da pagina error_reporting(0);// zero ai ele não mostra os erros vindo do php // exceto mysql_error() por exemplo que ele vai exibir mesmo assim.... Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 26, 2011 não é necessário "mexer" no init.php com a função error-reporting() você consegue esconder mas não é uma boa prática o erro significa que algo não está funcionando bem Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Abril 26, 2011 Para corrigir o erro você tem que verificar se existe o $_GET['funcao'], por isso ta dando @NOTICE, afinal $_GET['funcao'] nao existe e você está comparando ele. if(isset($_GET['funcao']) != "detalhes"){ Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 26, 2011 Para corrigir o erro você tem que verificar se existe o $_GET['funcao'], por isso ta dando @NOTICE, afinal $_GET['funcao'] nao existe e você está comparando ele. if(isset($_GET['funcao']) != "detalhes"){ andré tem um erro nessa sua condição o isset returna true ou false e vai comparar true ou false com "detalhes" Compartilhar este post Link para o post Compartilhar em outros sites