Foros del Web » Programando para Internet » PHP »

como omitir puntos y guión en búsqueda

Estas en el tema de como omitir puntos y guión en búsqueda en el foro de PHP en Foros del Web. como omitir puntos y guión en búsqueda tengo lo siguiente Código PHP: <? include( "conexion.php" ); $busqueda = $_POST [ busqueda ]; $result = mysql_query ...
  #1 (permalink)  
Antiguo 10/12/2011, 12:43
Avatar de carlod_39  
Fecha de Ingreso: noviembre-2011
Ubicación: FAfdddsf
Mensajes: 59
Antigüedad: 12 años, 4 meses
Puntos: 1
como omitir puntos y guión en búsqueda

como omitir puntos y guión en búsqueda
tengo lo siguiente

Código PHP:
<?
include("conexion.php");
$busqueda=$_POST[busqueda];
$result=mysql_query("SELECT * FROM maestro_personal WHERE buscar LIKE '$busqueda'");
?>
pero si el nombre que busco tiene un guión o punto (.,-) no encuentra nada que se puede hacer

Última edición por carlod_39; 10/12/2011 a las 12:50
  #2 (permalink)  
Antiguo 10/12/2011, 14:04
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: como omitir puntos y guión en búsqueda

Podrías eliminar esos caracteres:
$busqueda=str_replace("-",$_POST["busqueda"]);
$busqueda=str_replace(".",$busqueda);
  #3 (permalink)  
Antiguo 10/12/2011, 14:07
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: como omitir puntos y guión en búsqueda

puedes usar str_replace, http://php.net/manual/es/function.str-replace.php
Digo yo que:

Código PHP:
Ver original
  1. $busqueda=$_POST[busqueda];
  2. $omitir=array(".", "-"):
  3. $busqueda2= str_replace($omitir, "", $busqueda);
  4. &result = etc

por otro lado te aconsejo usar mysql_real_escape_string en ese código!!
Saludos
  #4 (permalink)  
Antiguo 10/12/2011, 14:56
Avatar de carlod_39  
Fecha de Ingreso: noviembre-2011
Ubicación: FAfdddsf
Mensajes: 59
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: como omitir puntos y guión en búsqueda

gracias por responder pero no puedo eliminarlos porque los necesito no existe alguna otra forma
  #5 (permalink)  
Antiguo 10/12/2011, 16:42
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: como omitir puntos y guión en búsqueda

¿Cómo está eso que los quieres quitar pero no puedes porque los necesitas?
¿Entonces te refieres a evitar esos caracteres pero no reemplazarlos?
Entonces usa preg_match con un condicional evitando los caracteres que deseas, si devuelve true, apareces un error que diga que no se permiten y ya.
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #6 (permalink)  
Antiguo 11/12/2011, 18:57
Avatar de carlod_39  
Fecha de Ingreso: noviembre-2011
Ubicación: FAfdddsf
Mensajes: 59
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: como omitir puntos y guión en búsqueda

Cita:
Iniciado por Sourcegeek Ver Mensaje
¿Cómo está eso que los quieres quitar pero no puedes porque los necesitas?
¿Entonces te refieres a evitar esos caracteres pero no reemplazarlos?
Entonces usa preg_match con un condicional evitando los caracteres que deseas, si devuelve true, apareces un error que diga que no se permiten y ya.
no quiero borrarlos de la base de datos pero quiero que al hacer la busqueda no afecten en los resultados ejemplo si en la base de datos existe un numero 1.000 y se busque 1000 aparezca igual no se si se entiende
  #7 (permalink)  
Antiguo 12/12/2011, 05:32
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: como omitir puntos y guión en búsqueda

A! ahora lo entiendo, creo que lo habíamos entendido alrevés.
Puedes, entonces, hacerlo alrevés... por ejemplo:
Código PHP:
Ver original
  1. <?
  2. include("conexion.php");
  3. $busqueda=$_POST[busqueda];
  4. $result=mysql_query("SELECT * FROM maestro_personal");
  5. $omitir=array(".", "-");
  6. $resultado = array();
  7. while ($fila = mysql_fetch_assoc($result)) {
  8. $fila['buscar'] = str_replace($omitir, "", $fila['buscar']);
  9. if ($fila['buscar'] == $busqueda) {$resultado[] = $fila['elcampoamostrar']; }
  10. }
  11. if (!empty($resultado)){
  12. foreach($resultado as $valor){echo $valor;}
  13. }
  14. else echo "no hay resultados";
  15. ?>

No sé si es del todo correcto, y seguro que hay maneras más sencillas...

Saludos
  #8 (permalink)  
Antiguo 12/12/2011, 08:56
Avatar de carlod_39  
Fecha de Ingreso: noviembre-2011
Ubicación: FAfdddsf
Mensajes: 59
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: como omitir puntos y guión en búsqueda

gracias voy a probarlos y después les cuento
  #9 (permalink)  
Antiguo 12/12/2011, 09:50
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: como omitir puntos y guión en búsqueda

Lo que me acabo de dar cuenta, es que con esto, cuando busques 1.000, no te va a coincidir con el resultado de la tabla en el que se le ha quitado el punto...
Habría que añadir antes de la comparación:
$busqueda = str_replace($omitir, "", $busqueda);
Así quitamos guiones y puntos a todo...
Saludos!
  #10 (permalink)  
Antiguo 12/12/2011, 09:54
Avatar de carlod_39  
Fecha de Ingreso: noviembre-2011
Ubicación: FAfdddsf
Mensajes: 59
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: como omitir puntos y guión en búsqueda

gracia a ti ya lo pude solucionar y funciona perfectamente

Etiquetas: guión, omitir, puntos, busquedas
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 09:07.