Foros del Web » Programando para Internet » PHP »

Replace??

Estas en el tema de Replace?? en el foro de PHP en Foros del Web. Hola: Tengo un problem y ya no sé como arreglarlo.... Tengo un Bd, en la que inserto un titulo de un libro.Entonces cuando un usuario ...
  #1 (permalink)  
Antiguo 17/04/2008, 12:13
 
Fecha de Ingreso: septiembre-2007
Mensajes: 234
Antigüedad: 16 años, 7 meses
Puntos: 1
Exclamación Replace??

Hola:
Tengo un problem y ya no sé como arreglarlo....
Tengo un Bd, en la que inserto un titulo de un libro.Entonces cuando un usuario introduce un nuevo titulo, a través de AJAX, compruebo si ese titulo ya está en la BD. Pero eso solo me funciona si las dos cadenas son exactamenrte iguales.
Por ejemplo si tengo:
almacenado en BD:Esta es una prueba
Insertado por usuario: Esta, es un prueba


me aparece como sino estuviera en la BD... cosa que no es cierta, ya que en este caso solo se distingue por la coma.
¿Como puedo hacerlo para que la comprobación sea totalmente correcta?
He probado a hacer:
Cita:
$nuevo= $_POST['nuevo'];
$nuevo2 = ereg_replace("[, ]","", $nuevo);

if(trim($nuevo)!=''){
$consulta= "SELECT * FROM publicaciones";
$resultado= mysql_query($consulta) or die(mysql_error());
$existe=true;
while($row=mysql_fetch_array($resultado) && ($existe)){
$nueva_cadena = ereg_replace("[, ]","",$row['titulo']);
echo $row['titulo'];
if($nueva_cadena == $nuevo2)
$existe=false;
}
if($existe)
echo "Esta registrado";
else
echo "No esta registrado";
}
es decir sustitutir la coma y los espacios.$nuevo es el valor que introduce el usuario...pero no funciona.
También tengo el problema de que a lo mejor el usuario escribiera punto al final de la cadena como
por ejemplo Esta, es un prueba. y ya tampoco sería iguales ambas cadenas....
Gracias!!!
  #2 (permalink)  
Antiguo 17/04/2008, 14:30
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Re: Replace??

Holas Carol_84

Pues, si no hay un script ya hecho para filtrar estos detalles de comparación, creo que tendrías que darte el trabajo tú mismo/a de preguntar cada una de las posibilidades.

En todo caso, si por ejemplo, las comas o puntos no fueran importantes en el texto a comparar (ya que dices que son titulos), entonces podrías probar a despejar de signos de puntuación ambas cadenas (usando str_replace() ), y también depurar los espacios entre medio (separando las palabras de la cadena en un array por medio de split(), luego uniendo de nuevo el array mediante un espacio simple usando join() ), de modo que queden sólo las palabras y así hacer la comparación un poco más certera... Eso se me ocurre a la primera :O
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
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 16:49.