Foros del Web » Programando para Internet » PHP »

str_replace mysql

Estas en el tema de str_replace mysql en el foro de PHP en Foros del Web. Hola que tal buenos días tengo una consulta ,espero y me puedan ayudar , mi problema es el siguiente , desde un formulario coloco una ...
  #1 (permalink)  
Antiguo 09/11/2012, 02:24
 
Fecha de Ingreso: diciembre-2010
Mensajes: 19
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta str_replace mysql

Hola que tal buenos días tengo una consulta ,espero y me puedan ayudar , mi problema es el siguiente , desde un formulario coloco una frase la cual recibe php y quiero que busque ciertas palabras en una tabla la cual contienen 2 campos original y sustitución,el resultado que quiero obtener es el siguiente

base de datos
originales --- alumnos, calles, ciudad
sustitución --- estudiantes, avenidas, municipio

texto introducido en el formulario: los alumnos pasaron por las calles

texto que quiero que se remplaze con la base de datos quedaría así:
los estudiantes pasaron por las avenidas.

el problema es que me imprime 3 veces alumnos y 3 veces calles.

aquí les dejo el código


<form method="post" action="index.php">

Ingresa la noticia:<br /><textarea name="noticia" rows="4" cols="30"></textarea>
<br/>

<input type="submit" name="Submit" value="Generar" />
</form>


<?
include("Conexion.php");

$noticia = $_POST['noticia'];

$conexion=conectar();

$sqlconsulta = mysql_query("select * from palabras") or die("error consulta");

while($datos = mysql_fetch_array($sqlconsulta)){
$resultado = str_replace($datos['originales'], $datos['sustitucion'], $noticia);
echo $resultado;
}.....
  #2 (permalink)  
Antiguo 09/11/2012, 03:09
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: str_replace mysql

El echo lo tienes en un bucle, es normal que te imprima varias veces, si quitas el bucle o pones le echo fuera se solucionará.

P.D: Te aconsejo a la hora de meter código, que lo realizes entre las etiquetas [ PHP ] y [/ PHP para que tenga mejor visibilidad y poder facilitar al que te ayuda a entender el código.

Un saludo
  #3 (permalink)  
Antiguo 09/11/2012, 03:17
 
Fecha de Ingreso: diciembre-2010
Mensajes: 19
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: str_replace mysql

Hola Helios muchas gracias por tu pronta respuesta , la verdad no conozco mucho de php me ido guiando un poco con el manual , ya intente ponerlo fuera pero no me imprime nada, podrías ayudarme por favor.

si saco el echo del bucle , no me remplaza las palabras.
  #4 (permalink)  
Antiguo 09/11/2012, 03:18
 
Fecha de Ingreso: diciembre-2010
Mensajes: 19
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: str_replace mysql

Cita:
Iniciado por Heli0s Ver Mensaje
El echo lo tienes en un bucle, es normal que te imprima varias veces, si quitas el bucle o pones le echo fuera se solucionará.

P.D: Te aconsejo a la hora de meter código, que lo realizes entre las etiquetas [ PHP ] y [/ PHP para que tenga mejor visibilidad y poder facilitar al que te ayuda a entender el código.

Un saludo
Hola Helios muchas gracias por tu pronta respuesta , la verdad no conozco mucho de php me ido guiando un poco con el manual , ya intente ponerlo fuera pero no me imprime nada, podrías ayudarme por favor.

si saco el echo del bucle , no me remplaza las palabras.
  #5 (permalink)  
Antiguo 09/11/2012, 03:19
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: str_replace mysql

La impresión de las palabras no debería de cambiar que te las reemplace o no, pon de nuevo el código que tienes, hay que pillar la costumbre de poner el código, no somos adivinos sin código poco podemos hacer para saber donde fallas.

Un saludo
  #6 (permalink)  
Antiguo 09/11/2012, 03:23
 
Fecha de Ingreso: diciembre-2010
Mensajes: 19
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: str_replace mysql

Cita:
Iniciado por Heli0s Ver Mensaje
La impresión de las palabras no debería de cambiar que te las reemplace o no, pon de nuevo el código que tienes, hay que pillar la costumbre de poner el código, no somos adivinos sin código poco podemos hacer para saber donde fallas.

Un saludo
Código PHP:
while($rowNot mysql_fetch_array($sqlconsulta)){ 
  
$lib1$rowNot["originales"]; 
  
$lib2 $rowNot["sustitucion"]; 
  
$resultado str_replace($lib1$lib2$noticia);
}

echo 
$resultado
no se si es correcto hacerlo así de esa manera.
  #7 (permalink)  
Antiguo 09/11/2012, 03:30
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: str_replace mysql

Así debería de funcionar, lo único que te imprimirá únicamente los valores de la ultima linea de la base de datos, ¿es así?
  #8 (permalink)  
Antiguo 09/11/2012, 03:34
 
Fecha de Ingreso: diciembre-2010
Mensajes: 19
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: str_replace mysql

No no me imprime nada pero cambie el while por un if

Código PHP:
if ($rowNot mysql_fetch_array($sqlconsulta)){ 
  
$lib1$rowNot["originales"]; 
  
$lib2 $rowNot["sustitucion"]; 
  
$resultado str_replace($lib1$lib2$noticia);
echo 
$resultado;

el problema es que si en mi campos

original calle, cielo , plástico

sustitución avenida, espacio , hule


si yo coloco desde la calle veo el cielo quisiera que me lo remplaze por desde la avenida veo el espacio.

pero con el if solo me cambia una palabra y queda así desde la avenida veo el cielo :(
  #9 (permalink)  
Antiguo 09/11/2012, 03:40
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: str_replace mysql

Claro es que para sustituir varias palabras, le debes pasar arrays a str_replace, no strings.

Código PHP:
$i 0;
$lib1 = array();
$lib2 = array();
while(
$rowNot mysql_fetch_array($sqlconsulta)){ 
  
$lib1[$i]= $rowNot["originales"]; 
  
$lib2[$i] = $rowNot["sustitucion"]; 
  
$i++;
}
$resultado str_replace($lib1$lib2$noticia);
echo 
$resultado
No lo he comprobado, pero así debería funcionar.
  #10 (permalink)  
Antiguo 09/11/2012, 03:44
 
Fecha de Ingreso: diciembre-2010
Mensajes: 19
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: str_replace mysql

Cita:
Iniciado por Heli0s Ver Mensaje
Claro es que para sustituir varias palabras, le debes pasar arrays a str_replace, no strings.

Código PHP:
$i 0;
$lib1 = array();
$lib2 = array();
while(
$rowNot mysql_fetch_array($sqlconsulta)){ 
  
$lib1[$i]= $rowNot["originales"]; 
  
$lib2[$i] = $rowNot["sustitucion"]; 
  
$i++;
}
$resultado str_replace($lib1$lib2$noticia);
echo 
$resultado
No lo he comprobado, pero así debería funcionar.

Genial , excelente muchas gracias si así es , muchas gracias

Etiquetas: mysql, str_replace
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 01:24.