Jump to content


Photo

Else { Não Está Funcionando...


  • Faça o login para participar
7 replies to this topic

#1 sensuais

sensuais

    Turista

  • Usuários
  • 37 posts
  • Sexo:Não informado

Posted 02/09/2003, 11:44

Olá pessoal.

Como podem ver no meu código abaixo tenho um else que quando a pesquisa não retornasse um registro ele seria executado.
Mais não é isso que está acontecendo.

Quando não tem registro nenhum ele mostra a página em branco.

Alguém sabe como arrumar isso?


<?
  $conec;
  $bco;
  $conectou = 0;
  include "conexao.php";
  if ($conectou) {
    
$sql = "select * from tb_imoveis where para = '$txt_para' and tipo = '$txt_tipo'";
$regsporpg = 10;

if ($sql2 != "") { 
$sql = urldecode($sql2);
$sql = stripslashes($sql);
}

	if ($pg == "") $pg = 1;
	$pg2 = ($pg - 1) * $regsporpg;
	$sql1 = $sql . " LIMIT $pg2, $regsporpg ";
	// echo $sql1;
	$res = mysql_query($sql1,$conec) or die (mysql_error());
	while ($dados = mysql_fetch_array($res)) {
	
	include "selecionapesquisa.php";
  

  } //fecha conteudo 

$res2 = mysql_query($sql,$conec) or die (mysql_error());
$qtdpgs = ceil((mysql_num_rows($res2) / $regsporpg));
// echo mysql_num_rows($res2).$qtdpgs;
while ($pagina < $qtdpgs) {
$pagina = $pagina + 1;
// echo "<a href=".$PHP_SELF."?txt_cod=".$cod."&txt_tipo=".$tipo."&txt_para=".$para."&txt_bairro=".$bairro."&txt_dorm".$dorm."&txt_preco=".$preco."&pg=".$pagina."> $pagina </a> |";
$sql2 = urlencode($sql);
echo "<a href=".$PHP_SELF."?sql2=".$sql2."&pg=".$pagina."> $pagina </a> |";
}

   } //fecha conectou

else {
   echo "Nenhum imóvel encontrado nesse perfil."; 
   echo "<br><a href='javascript:history.go(-1)'><< Voltar</a><br>"; 

   } //fecha else

?>

Conto com vcs.

Valeu galera... :ph34r:

#2 Guest

Guest
  • Visitantes

Posted 02/09/2003, 15:00

Tenta assim :
<?
 $conec;
 $bco;
 $conectou = 0;
 include "conexao.php";
 if ($conectou) {
   
$sql = "select * from tb_imoveis where para = '$txt_para' and tipo = '$txt_tipo'";
$regsporpg = 10;

if ($sql2 != "") { 
$sql = urldecode($sql2);
$sql = stripslashes($sql);
}

if ($pg == "") $pg = 1;
$pg2 = ($pg - 1) * $regsporpg;
$sql1 = $sql . " LIMIT $pg2, $regsporpg ";
// echo $sql1;
$res = mysql_query($sql1,$conec) or die (mysql_error());
while ($dados = mysql_fetch_array($res)) {

include "selecionapesquisa.php";
 

 } //fecha conteudo 

$res2 = mysql_query($sql,$conec) or die (mysql_error());
$qtdpgs = ceil((mysql_num_rows($res2) / $regsporpg));
// echo mysql_num_rows($res2).$qtdpgs;
while ($pagina < $qtdpgs) {
$pagina = $pagina + 1;
// echo "<a href=".$PHP_SELF."?txt_cod=".$cod."&txt_tipo=".$tipo."&txt_para=".$para."&txt_bairro=".$bairro."&txt_dorm".$dorm."&txt_preco=".$preco."&pg=".$pagina."> $pagina </a> |";
$sql2 = urlencode($sql);
echo "<a href=".$PHP_SELF."?sql2=".$sql2."&pg=".$pagina."> $pagina </a> |";
}

  [B]} else { [/B]
  echo "Nenhum imóvel encontrado nesse perfil."; 
  echo "<br><a href='javascript:history.go(-1)'><< Voltar</a><br>"; 

  } //fecha else

?>
bom espero ter ajudado !!!

#3 Guest

Guest
  • Visitantes

Posted 02/09/2003, 15:36

É fiquei na mesma.

Não entendi ao certo o que vc fez mais continua com a página em branco.

Valeu.

Setiver mais alguma idéia ai manda pra nóis em....

#4 Guest

Guest
  • Visitantes

Posted 02/09/2003, 15:40

Uma das coisas que também tentei fazer foi colocar o ELSE dentro do laço conectou, mais ai ele da erro na linha 57. Que é exatamente a linha onde está o ELSE {.

Alguem sabe como me ajudar ai.....?

#5 Squall Robert

Squall Robert

    Mr. Squall - Mais Carne do que Osso (hihi)

  • Usuários
  • 507 posts
  • Sexo:Masculino
  • Localidade:Curitiba
  • Interesses:Php ... Php...Php

Posted 03/09/2003, 00:44

Se entendi você fez um IF e noão abriu

esta assim
if(valor)

e deveria estar assim
if(valor) {

Dica....

vc pode verificar ser um valor é nulo assim

if(empty($variavel)){

empty verifica se é nulo

!empty // se não for nulo

espero que ajude...
<?php

$squall = new Squall();

$squall->Ajudando("você");

$resultado = $squall->solucao();  ?>

#6 Guest

Guest
  • Visitantes

Posted 03/09/2003, 10:18

Olá amigo.

Como estou aprendendo PHP já até anotei a explicação que vc deu sobre verificar valor nulo.

Mais acho que vai servir em outra ocasião.

Fiz o que vc falou porém ele não deu erro na minha pesquisa, quando tem um conteúdo ele mostra perfeitamente, mais quando não tem nada é nulo ele mostra uma tela em branco não o echo que coloquei no empty.


<?
  $conec;
  $bco;
  $conectou = 0;
  include "conexao.php";
  if ($conectou) {
    
$sql = "select * from tb_imoveis where para = '$txt_para'";
$regsporpg = 10;

 	 if ($txt_tipo != "") $sql .= " and tipo = '$txt_tipo' "; 
 	 if ($txt_bairro != "") $sql .= " and bairro = '$txt_bairro' "; 
 	 if ($txt_dorm == "1") $sql .= " and dorm = 1 "; 
 	 if ($txt_dorm == "2") $sql .= " and dorm in (2,3) "; 
 	 if ($txt_dorm == "4") $sql .= " and dorm in (4,5) "; 
 	 if ($txt_dorm == "5") $sql .= " and dorm >= 5 "; 
 	 if ($txt_preco == "1") $sql .= " and preco between 100.00 and 200.00"; 
 	 if ($txt_preco == "2") $sql .= " and preco between 200.00 and 300.00"; 
 	 if ($txt_preco == "3") $sql .= " and preco between 300.00 and 500.00"; 
 	 if ($txt_preco == "4") $sql .= " and preco between 500.00 and 800.00"; 
 	 if ($txt_preco == "5") $sql .= " and preco between 800.00 and 1000.00"; 
 	 if ($txt_preco == "6") $sql .= " and preco between 1000.00 and 5000.00"; 
 	 if ($txt_preco == "7") $sql .= " and preco between 5000.00 and 10000.00"; 
 	 if ($txt_preco == "8") $sql .= " and preco between 10000.00 and 50000.00"; 
 	 if ($txt_preco == "9") $sql .= " and preco between 50000.00 and 100000.00"; 
 	 if ($txt_preco == "10") $sql .= " and preco >= 100000.00 ";
 	 
	if(empty($sql)){
   echo "Nenhum imóvel encontrado nesse perfil."; 
   echo "<br><a href='javascript:history.go(-1)'><< Voltar</a><br>"; 
	} // Fecha empty

/* 	 
 	 IF (mysql_num_rows($sql)==0) { 
   echo "Nenhum imóvel encontrado nesse perfil."; 
   echo "<br><a href='javascript:history.go(-1)'><< Voltar</a><br>"; 
 	 }    
*/ 	 
 	 
if ($sql2 != "") { 
$sql = urldecode($sql2);
$sql = stripslashes($sql);
}

	if ($pg == "") $pg = 1;
	$pg2 = ($pg - 1) * $regsporpg;
	$sql1 = $sql . " LIMIT $pg2, $regsporpg ";
	// echo $sql1;
	$res = mysql_query($sql1,$conec) or die (mysql_error());
	while ($dados = mysql_fetch_array($res)) {
	
	include "selecionapesquisa.php";
  

  } //fecha conteudo 

// floor = arredonda para baixo
// ceil = arredonda para cima 
// round = arredonda valor após o ponto

$res2 = mysql_query($sql,$conec) or die (mysql_error());
$qtdpgs = ceil((mysql_num_rows($res2) / $regsporpg));
// echo mysql_num_rows($res2).$qtdpgs;
while ($pagina < $qtdpgs) {
$pagina = $pagina + 1;
// echo "<a href=".$PHP_SELF."?txt_cod=".$cod."&txt_tipo=".$tipo."&txt_para=".$para."&txt_bairro=".$bairro."&txt_dorm".$dorm."&txt_preco=".$preco."&pg=".$pagina."> $pagina </a> |";
$sql2 = urlencode($sql);
echo "<a href=".$PHP_SELF."?sql2=".$sql2."&pg=".$pagina."> $pagina </a> |";
}

   } //fecha conectou

?>

Me de mais uma mãozinha Please.


#7 MaXiMuS

MaXiMuS

    o cara que escreve engraçado

  • Usuários
  • 785 posts
  • Sexo:Não informado
  • Localidade:Guarulhos - SP - Brasil

Posted 03/09/2003, 10:49

Ai Ai Ai.... já que não tenho nada para fazer... vou te ajudar ok?

1º - Você quer exibir uma mensagem de "nenhum imóvel encontrado" correto?

Para tal fim, devo explicar-lhe uma coisa, ao verificar se seu $sql existe, você apenas verifica se ele executou corretamente, foi setado etc. E não o valor que ele retornou.

Para tal fim, você pode utilizar a clausula mysql_num_rows. Creio que você já deva ter ouvido falar dela, se não, vou te explicar...

Suponhamos que você tem uma tabela com 30 registros. Você quer contar o nº de registros existentes nela, porém você não sabe quantos tem... como fazer?

$sql = mysql_query("Select * from tabela");


Nisso você selecionou todos os dados da tabela correto? E agora?

$total = mysql_num_rows($sql);
echo "Total de registros: $total";

Oq faz o mysql_num_rows realmente? Vamos lá.... MYSQL = Banco de dados; Num = Numeros; Cols = Colunas/Registros

Ou seja, a partir de uma clausula Select, ele verifica quantos registros foram encontrados a partir daquele Select, no exemplo acima, o valor no caso seria 30.

Agora... você deve tá pensando .... como isso pode me ajudar?

voce poe assim

if(mysql_num_rows($sql)>0) {

exibedados

} else {

Nenhum registro encontrado

}



#################################################################

Bom, após colocar todo esse tutorialzinho falando sobre o num_rows... hehehe percebi q vc já tinha o colocado, porém existe um erro no seu script, q passou totalmente dispercebido...

Vc apenas estipula o código SQL..... o SELECT, porém não o executa, cade o mysql_query() amigo??? Vc pretende q o código execute-se sozinho sem isso? Não mesmo, hehehe para o código ele atualmente é apenas uma variável com um conteúdo SQL dentro dele....


#################################################################

Ops 2.... vc colocou o mysql_query sim.... lá embaixo.... então aí está o erro, vc verifica se existem registros, antes de realizar a query.... vou ajeitar seu código.. e posto aqui daki a poko...

#################################################################

<?
 $conec;
 $bco;
 $conectou = 0;
 include "conexao.php";
 if ($conectou) {

$sql = "select * from tb_imoveis where para = '$txt_para'";
$regsporpg = 10;

  if ($txt_tipo != "") $sql .= " and tipo = '$txt_tipo' ";
  if ($txt_bairro != "") $sql .= " and bairro = '$txt_bairro' ";
  if ($txt_dorm == "1") $sql .= " and dorm = 1 ";
  if ($txt_dorm == "2") $sql .= " and dorm in (2,3) ";
  if ($txt_dorm == "4") $sql .= " and dorm in (4,5) ";
  if ($txt_dorm == "5") $sql .= " and dorm >= 5 ";
  if ($txt_preco == "1") $sql .= " and preco between 100.00 and 200.00";
  if ($txt_preco == "2") $sql .= " and preco between 200.00 and 300.00";
  if ($txt_preco == "3") $sql .= " and preco between 300.00 and 500.00";
  if ($txt_preco == "4") $sql .= " and preco between 500.00 and 800.00";
  if ($txt_preco == "5") $sql .= " and preco between 800.00 and 1000.00";
  if ($txt_preco == "6") $sql .= " and preco between 1000.00 and 5000.00";
  if ($txt_preco == "7") $sql .= " and preco between 5000.00 and 10000.00";
  if ($txt_preco == "8") $sql .= " and preco between 10000.00 and 50000.00";
  if ($txt_preco == "9") $sql .= " and preco between 50000.00 and 100000.00";
  if ($txt_preco == "10") $sql .= " and preco >= 100000.00 ";

if ($sql2 != "") {
$sql = urldecode($sql2);
$sql = stripslashes($sql);
}

if ($pg == "") $pg = 1;
$pg2 = ($pg - 1) * $regsporpg;
$sql1 = $sql . " LIMIT $pg2, $regsporpg ";
// echo $sql1;
$res = mysql_query($sql1,$conec) or die (mysql_error());
if(mysql_num_rows($res)>0) {
while ($dados = mysql_fetch_array($res)) {

include "selecionapesquisa.php";


 } //fecha conteudo

// floor = arredonda para baixo
// ceil = arredonda para cima
// round = arredonda valor após o ponto

$res2 = mysql_query($sql,$conec) or die (mysql_error());
$qtdpgs = ceil((mysql_num_rows($res2) / $regsporpg));
// echo mysql_num_rows($res2).$qtdpgs;
while ($pagina < $qtdpgs) {
$pagina = $pagina + 1;
// echo "<a href=".$PHP_SELF."?txt_cod=".$cod."&txt_tipo=".$tipo."&txt_para=".$para."&txt_bairro=".$bairro."&txt_dorm".$dorm."&txt_preco=".$preco."&pg=".$pagina."> $pagina </a> |";
$sql2 = urlencode($sql);
echo "<a href=".$PHP_SELF."?sql2=".$sql2."&pg=".$pagina."> $pagina </a> |";
}
} else {
echo "Nenhum imóvel encontrado nesse perfil.";
  echo "<br><a href='javascript:history.go(-1)'><< Voltar</a><br>";
} //fecha mysql_num_Rows
} //fecha conectou

?>

Testa agora.. e diz se dá certo

#8 Guest

Guest
  • Visitantes

Posted 03/09/2003, 11:22

Valeu amigo....

Problema resolvido......

Muito obrigado.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq