Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] buscador php

Estas en el tema de buscador php en el foro de PHP en Foros del Web. Hola! Tengo este código y lo que necesito es poner un mensaje para cuando el campo este vació, y evitar los caracteres especiales. Necesito que ...
  #1 (permalink)  
Antiguo 08/02/2015, 21:54
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
buscador php

Hola! Tengo este código y lo que necesito es poner un mensaje para cuando el campo este vació, y evitar los caracteres especiales. Necesito que me orienten para así aprender bien esto de PHP.

Código PHP:
 <?php  
                
                $sql 
"SELECT * FROM asesores ";
                
                
                if (isset(
$_POST['agente'])){
                    
                    
$sql .= "WHERE id_asesores LIKE '".$_POST['agente']."' or nombre LIKE '%".$_POST['agente']."%'";    
                }                
                
                
$sql.= "ORDER BY id_asesores LIMIT 9";
        
                
$resultados mysql_query($sql) or die (mysql_error());


                while (
$asesores mysql_fetch_assoc($resultados)) {
             
?>
  #2 (permalink)  
Antiguo 09/02/2015, 04:08
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 11 meses
Puntos: 4
Respuesta: buscador php

Si el campo esta vacio:

Código PHP:
if (isset($_POST['campo'])){
$sql=...
}
else{
echo(
"El campo está vacio.");

Para evitar caracteres especiales, puedes usar algo asi, que elimina los caracteres especiales:

Código PHP:
$texto $_POST['campo'];

function 
sustituir($texto)
{
      
$textoSustituido preg_replace('([^A-Za-z0-9])'''$texto);                             

  #3 (permalink)  
Antiguo 09/02/2015, 17:33
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: buscador php

Cuando dejo el campo vació no me aparece el mensaje, que crees que pueda ser?
  #4 (permalink)  
Antiguo 09/02/2015, 17:56
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: buscador php

Hola,

Primero que nada una recomendación (que a lal arga te hará la vida mas fácil): deja de usar las funciones mysql_ y usa mysqli o PDO. ¿La razón? La extensión mysql esta obsoleta desde PHP 5.5.

Ahora bien, para tu problema, puedes usar algo asi:

Código PHP:
Ver original
  1. $agente = isset($_POST['agente']) ? preg_replace('[^A-Za-z0-9]', '', $_POST['agente']) : null ;
  2.  
  3. if ( empty( $agente ) ) {
  4.     echo 'No se ha seleccionado un agente.';
  5. }else{
  6.     // Aqui ya haces la consulta/filtro/etc.
  7. }

La razón por la que el código de migue_coco no funciona es que isset comprueba que una variable esté seteada, no si está vacía o no.

¡Saludos!
__________________
Sin Ideas
  #5 (permalink)  
Antiguo 10/02/2015, 00:51
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 11 meses
Puntos: 4
Respuesta: buscador php

Cierto, se me coló el null!
  #6 (permalink)  
Antiguo 12/02/2015, 14:26
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: buscador php

Gracias a los dos por brindarme su ayuda. Ahora quiero mostrar un mismo mensaje pero en caso de que no se encuentre ningún resultado.
  #7 (permalink)  
Antiguo 12/02/2015, 14:47
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: buscador php

agrega una condición despues de la consulta y utiliza mysql_num_rows para verificar si obtuviste resultados. De no existir resultados haces un echo con el mensaje que quieras.

Cita:
Primero que nada una recomendación (que a lal arga te hará la vida mas fácil): deja de usar las funciones mysql_ y usa mysqli o PDO. ¿La razón? La extensión mysql esta obsoleta desde PHP 5.5.
De echo la versión 7 ya no tendrá disponible la extensión mysql.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #8 (permalink)  
Antiguo 12/02/2015, 16:34
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: buscador php

Gracias hhs, me funciono a la perfeccion :D. Ahora tengo el siguente formulario en el cual tengo 1 input y 4 select, quiero hacer que en caso de no escribir y solo seleccionar me haga la busqueda.

Código HTML:
<form action="buscar">
							<input type="search" class="cajabuscador2" placeholder="Digita el codigo, Sector o ID de la propiedad" name="id_buscador" value="" id="id_buscador" />
						<div class="styled-select2">
							<select name="tipo" id="tipo">
      							<option>Apartamento</option>
      							<option>Apartamento</option>
   							</select>
						</div>
						<div class="styled-select2">
							<select name="ubicacion" id="ubicacion">
      							<option>Apartamento</option>
      							<option>Apartamento</option>
   							</select>
						</div>
						<div class="styled-select2">
							<select name="precio" id="precio">
      							<option>Apartamento</option>
      							<option>Apartamento</option>
   							</select>
						</div><div class="styled-select2">
							<select>
      							<option>Apartamento</option>
      							<option>Apartamento</option>
   							</select>
						</div>
				
						</form> 
  #9 (permalink)  
Antiguo 12/02/2015, 17:00
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: buscador php

Código PHP:
Ver original
  1. $tipo = $_POST['tipo'];
  2.                 $ubicacion = $_POST['ubicacion'];
  3.                 $precio = $_POST['precio'];
  4.                 $propiedad = $_POST['propiedad'];
  5.                
  6.                 $sql = "SELECT * FROM proyectos
  7.                             WHERE tipo='$tipo' or ubicacion ='$ubicacion' or precio ='$precio'";
  8.                            
  9.                             if (isset($propiedades)){
  10.                                 $sql.= "or id_proyecto LIKE '".$_POST['propiedad']."' LIMIT 9";
  11.                             }
  12.                 $resultados = mysql_query($sql) or die (mysql_error());
  13.                
  14.                 if (mysql_num_rows($resultados)==0){
  15.                    
  16.                     echo "No se encontro resultados";
  17.                     }
Asi me quedo, que tal?, es mejor utilizar GET o POST para buscadores?

No estoy utiliando el mysqli aun no le encuentro bien la logica.

Etiquetas: buscador, mysql, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:24.