Ir para conteúdo
Fórum Script Brasil
  • 0

Busca em php quando não acha resultado não diz nada! Quero que um echo diga "Nada encontado, tente de novo"


marcinnhu

Pergunta

Ola pessoal, tudo bem?

 

Vejam se podem me ajudar por favor. A minha busca em php quando não acha nada no banco de dados não retorna mensagem do tipo: "Desculpe, nada encontrado, tente de novo". Esse mensagem que esta grifada em vermelho aparece antes de eu clicar em pesquisar.  Deem uma olhada no meu codigo, me ajudem por favor!

 

<form id="form_busca" name="form_busca" method="get" action="busca.php">
        <label for="campo_busca"></label>
        <input placeholder="Pesquise..." type="text" name="campo_busca" id="campo_busca" />
        <input type="submit" name="menu_buscar" id="menu_buscar" value="Buscar" />
      </form>
      
 
      
      <?php if($row_busca['not_id'] == '') { ?>
      
     <?php echo " Nada encontrado, tente de novo por favor."; ?>
      
      <?php } else { ?>
    </div>
      <table width="100%" border="0">
        <tr>
          <td width="31%">Titulo</td>
          <td width="60%">Data</td>
          <td width="9%">&nbsp;</td>
        </tr>
        <?php do { ?>
          <tr>
          
          <?php if($row_busca['not_status'] == '1') { ?>
            <td><a href="ver_noticias.php?not_id=<?php echo $row_busca['not_id']; ?>"><strong><?php echo $row_busca['not_titulo']; ?></strong></a></td>
            <td><?php echo date('d/m/Y',strtotime($row_busca['not_data'])); ?></td>
            <td align="right"><a href="ver_noticias.php?not_id=<?php echo $row_busca['not_id']; ?>">Ver Noticia</a></td>
                <?php  } ?>
                
                
          </tr>
          <?php } while ($row_busca = mysql_fetch_assoc($busca)); ?>
          
      </table>
      
      <?php } ?>
      
      
 
      <table border="0">
        <tr>
          <td><?php if ($pageNum_busca > 0) { // Show if not first page ?>
              <a href="<?php printf("%s?pageNum_busca=%d%s", $currentPage, 0, $queryString_busca); ?>">Ultimo</a>
              <?php } // Show if not first page ?></td>
          <td><?php if ($pageNum_busca > 0) { // Show if not first page ?>
              <a href="<?php printf("%s?pageNum_busca=%d%s", $currentPage, max(0, $pageNum_busca - 1), $queryString_busca); ?>">Anterior</a>
              <?php } // Show if not first page ?></td>
          <td><?php if ($pageNum_busca < $totalPages_busca) { // Show if not last page ?>
              <a href="<?php printf("%s?pageNum_busca=%d%s", $currentPage, min($totalPages_busca, $pageNum_busca + 1), $queryString_busca); ?>">Pr&oacute;ximo</a>
              <?php } // Show if not last page ?></td>
          <td><?php if ($pageNum_busca < $totalPages_busca) { // Show if not last page ?>
              <a href="<?php printf("%s?pageNum_busca=%d%s", $currentPage, $totalPages_busca, $queryString_busca); ?>">Primeiro</a>
              <?php  // Show if not last page ?></td>
              <?php }  ?>
        </tr>
      </table>
Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Fala ai Beraldo, Ve se consegue me ajudar por favor, segue o codigo completo:

<?php require_once('Connections/conexao_milcliques.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$currentPage = $_SERVER["PHP_SELF"];

$maxRows_busca = 15;
$pageNum_busca = 0;
if (isset($_GET['pageNum_busca'])) {
  $pageNum_busca = $_GET['pageNum_busca'];
}
$startRow_busca = $pageNum_busca * $maxRows_busca;

$colname_busca = "-1";
if (isset($_GET['campo_busca'])) {
  $colname_busca = $_GET['campo_busca'];
}
mysql_select_db($database_conexao_milcliques, $conexao_milcliques);
$query_busca = sprintf("SELECT * FROM noticias WHERE not_titulo LIKE %s OR not_conteudo LIKE %s", GetSQLValueString("%" . $colname_busca . "%", "text"),GetSQLValueString("%" . $colname_busca . "%", "text"));
$query_limit_busca = sprintf("%s LIMIT %d, %d", $query_busca, $startRow_busca, $maxRows_busca);
$busca = mysql_query($query_limit_busca, $conexao_milcliques) or die(mysql_error());
$row_busca = mysql_fetch_assoc($busca);

if (isset($_GET['totalRows_busca'])) {
  $totalRows_busca = $_GET['totalRows_busca'];
} else {
  $all_busca = mysql_query($query_busca);
  $totalRows_busca = mysql_num_rows($all_busca);
}
$totalPages_busca = ceil($totalRows_busca/$maxRows_busca)-1;

$queryString_busca = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_busca") == false && 
        stristr($param, "totalRows_busca") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_busca = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_busca = sprintf("&totalRows_busca=%d%s", $totalRows_busca, $queryString_busca);
?>
<!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"><!-- InstanceBegin template="/Templates/busca.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Site</title>
<!-- InstanceEndEditable -->
<link href="Templates/site.css" rel="stylesheet"/>
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
<style type="text/css">
.background {
    color: #0FF;
    background-color: #06F;
}
</style>
</head>

<body>
<table width="980" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><img src="imagens/banner.png" width="980" height="120" longdesc="../imagens/banner.png" /></td>
  </tr>
  
  
<td height="30" valign="middle" bgcolor="#CFEEEF">
    <div class="menu">
    <a href="index.php">Pagina Principal</a> | <a href="ultimas_noticias.php">Ultimas Noticias</a> | <a href="busca.php">Busca</a></div>
 </td>
 
 
  <tr>
    <td bgcolor="#CFEEEF">
    <div class="spaco"><!-- InstanceBeginEditable name="Conteudo" -->
    <hr/>
    <br/>
      <form id="form_busca" name="form_busca" method="get" action="busca.php">
        <label for="campo_busca"></label>
        <input placeholder="Pesquise..." type="text" name="campo_busca" id="campo_busca" />
        <input type="submit" name="menu_buscar" id="menu_buscar" value="Buscar" />
      </form>
      

      
      <?php if($row_busca['not_id'] <= '') { ?>
      
     <?php echo " Nada encontrado, tente de novo por favor."; ?>
      
      <?php } else { ?>
    </div>
      <table width="100%" border="0">
        <tr>
          <td width="31%">Titulo</td>
          <td width="60%">Data</td>
          <td width="9%">&nbsp;</td>
        </tr>
        <?php do { ?>
          <tr>
          
          <?php if($row_busca['not_status'] == '1') { ?>
            <td><a href="ver_noticias.php?not_id=<?php echo $row_busca['not_id']; ?>"><strong><?php echo $row_busca['not_titulo']; ?></strong></a></td>
            <td><?php echo date('d/m/Y',strtotime($row_busca['not_data'])); ?></td>
            <td align="right"><a href="ver_noticias.php?not_id=<?php echo $row_busca['not_id']; ?>">Ver Noticia</a></td>
                <?php  } ?>
                
                
          </tr>
          <?php } while ($row_busca = mysql_fetch_assoc($busca)); ?>
          
      </table>
      
      <?php } ?>
      
      

      <table border="0">
        <tr>
          <td><?php if ($pageNum_busca > 0) { // Show if not first page ?>
              <a href="<?php printf("%s?pageNum_busca=%d%s", $currentPage, 0, $queryString_busca); ?>">Ultimo</a>
              <?php } // Show if not first page ?></td>
          <td><?php if ($pageNum_busca > 0) { // Show if not first page ?>
              <a href="<?php printf("%s?pageNum_busca=%d%s", $currentPage, max(0, $pageNum_busca - 1), $queryString_busca); ?>">Anterior</a>
              <?php } // Show if not first page ?></td>
          <td><?php if ($pageNum_busca < $totalPages_busca) { // Show if not last page ?>
              <a href="<?php printf("%s?pageNum_busca=%d%s", $currentPage, min($totalPages_busca, $pageNum_busca + 1), $queryString_busca); ?>">Pr&oacute;ximo</a>
              <?php } // Show if not last page ?></td>
          <td><?php if ($pageNum_busca < $totalPages_busca) { // Show if not last page ?>
              <a href="<?php printf("%s?pageNum_busca=%d%s", $currentPage, $totalPages_busca, $queryString_busca); ?>">Primeiro</a>
              <?php  // Show if not last page ?></td>
              <?php }  ?>
        </tr>
      </table>
      
      
    <!-- InstanceEndEditable -->
    </div>
    </td>
  </tr>
  
  

  
  
  <tr>
    <td>
   <div style="background-image:url(imagens/rodape.png); background-position:bottom; background-repeat:no-repeat; width:980px; height:30px"> 
   <div align="center" style="padding-top:7px; color:#007FFF;">
   &copy; 2016 - Todos os Direitos Reservados. 
   </div>
      </div>
    </td>
  </tr>
</table>
</body>
<!-- InstanceEnd --></html>
<?php
mysql_free_result($busca);
?>

Editado por marcinnhu
Link para o comentário
Compartilhar em outros sites

  • 0

Não entendi direito sua lógica... você faz o if com cada item do resultado.

Se quiser verificar se há resultados, use o retorno de mysql_num_rows, não um elemento do array retornado por mysql_fetrch_array

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5  e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/


 

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo,

Como vou fazer com o mysql_num_rows ? você esta olhando todo o meu codigo, me dê uma luz ai. Quero que caso a busca não ache nada retorne algum echo diga: "Nada encontrado, por favor tente de novo".
Da uma luz ai pf

Editado por marcinnhu
Link para o comentário
Compartilhar em outros sites

  • 0

O exemplo está no seu próprio código:

$totalRows_busca = mysql_num_rows($all_busca);

É só fazer um if com essa variável

if ($totalRows_busca > 0)
{
    // tem resultado
}
else
{
    // não tem resultado
}

Tome cuidado para contar os registros da consulta correta, já que você possui mais de uma consulta no script

 

Link para o comentário
Compartilhar em outros sites

  • 0
4 horas atrás, Beraldo disse:

O exemplo está no seu próprio código:


$totalRows_busca = mysql_num_rows($all_busca);

É só fazer um if com essa variável


if ($totalRows_busca > 0)
{
    // tem resultado
}
else
{
    // não tem resultado
}

Tome cuidado para contar os registros da consulta correta, já que você possui mais de uma consulta no script

 

Beraldo, 

Fiz o que você falou e ainda simplifiquei o codigo para ficar mais facil a gente entender.

Mas mesmo assim ele esta falando "não foi encontado nenhum res.." na hora que eu entro na pagina, eu quero que ele só diga se achou ou não achou resultado depois que eu fizer a busca. Só depois que eu clicar em buscar. Olha como esta o codigo agora pf;

 

      <?php $totalRows_busca = mysql_num_rows($all_busca); ?>
      <?php if ($totalRows_busca > 0) { echo "Voce obteve resultados";  ?>
      
    </div>
      <table width="100%" border="0">
        <tr>
          <td width="31%">Titulo</td>
          <td width="60%">Data</td>
          <td width="9%">&nbsp;</td>
        </tr>
        
        
        <?php do { ?>
          <tr>
            <td><a href="ver_noticias.php?not_id=<?php echo $row_busca['not_id']; ?>"><strong><?php echo $row_busca['not_titulo']; ?></strong></a></td>
            <td><?php echo date('d/m/Y',strtotime($row_busca['not_data'])); ?></td>
            <td align="right"><a href="ver_noticias.php?not_id=<?php echo $row_busca['not_id']; ?>">Ver Noticia</a></td>                            
          </tr>
          <?php } while ($row_busca = mysql_fetch_assoc($busca)); ?>                   
      </table>
      
      <?php } else { echo "Nada foi encontrado"; } ?>

Link para o comentário
Compartilhar em outros sites

  • 0
35 minutos atrás, marcinnhu disse:

Se foi acionado? A busca esta funcionando, então acho que foi acionado, mas vou olhar isso que você esta falando.

Eu não sei bem trabalhar com true, estou olhando os exemplos na net mas não esta indo, olha o meu codigo ai e me diz como ficaria pf amigo

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui galera, obrigado as ajuda dos Beraldo e Marcelo_2. Usei o isset e depois de algumas horas de tentativas deu certo =) o/  Segue a parte que mudei do codigo a baixo:

<?php

  if(isset($_GET['menu_buscar'])):
  
  $totalRows_busca = mysql_num_rows($all_busca); 
  if ($totalRows_busca == 0)  echo "Desculpe, nada encontrado. Faça uma nova busca!";
  
   if($_GET['campo_busca'] != '' ):
      $campo_busca = $_GET['campo_busca'];

      echo '';
      else:      
          echo '';
      endif;
  endif;    
  
?>

Editado por marcinnhu
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...