PHP - ayuda con un for(otra vez)

 
Vista:

ayuda con un for(otra vez)

Publicado por Fernando Rueda (57 intervenciones) el 28/08/2007 18:48:28
Quisiera colocar este codigo que tengo abajo y trasformarlo en un for, no si stengo que explicarlo, ustedes(los que me puedan ayudar) me diran....

$consulta = $_POST['textsolo'];
$consulta = str_replace("\\", "", $consulta);

$buscar = explode('&', $consulta);
$lcontador = count($buscar);
$endcons = $consulta;
for ($f= 1; $f<($lcontador)-1; $f+=2)
{
$buscar[$f];
}

$respconsul = "";
$paracont = $_POST["respsql"];
$cont = count($paracont);
for ($i= 0; $i < $cont; $i++)
{
$respconsul = $respconsul . $paracont[$i] . " . ";
$respconsul = str_replace("\\", "", $respconsul);
$paracont[$i];
}

//desde ak es el cambio que quiero hacer*
$endcons = $consulta;
$endcons = str_replace($buscar[1], $paracont[0], $endcons);
$endcons = str_replace($buscar[3], $paracont[1], $endcons);
$endcons = str_replace($buscar[5], $paracont[2], $endcons);
$endcons = str_replace($buscar[7], $paracont[3], $endcons);
$endcons = str_replace("&", "", $endcons);

*esto lo que hace es que me reemplaza en la consulta, lo que esta entre "&" con lo que esta en el input

pero yo quiero ordernar eso en un for, pues es para "n2 vcs.....y no lo he conseguido....gracias.

............Frueda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con un for(otra vez)

Publicado por Nicolás (154 intervenciones) el 28/08/2007 19:31:58
Si lo que queres es hacer la limpieza de $endcons dentro de un for, me parece que lo que tendrías que hacer es:

$endcons = $consulta;
$j = 0;
for ($i = 1; /*CONDICION*/; $i+=2) {
$endcons = str_replace($buscar[$i], $paracont[$j], $endcons);
$j++;
}
$endcons = str_replace("&", "", $endcons);

No termino de entender el problena, y por eso no sabría cual es la condición de corte del for. Si esto no te ayuda, mostranos como sería el formato de las dos cadenas recibidas por POST, y explicanos que es lo que querés hacer...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con un for(otra vez)

Publicado por Fernando Rueda (57 intervenciones) el 28/08/2007 21:09:33
nop, no es eso lo que requiero, lo que requiero es remplazar en la cadena, lo que entre "&", por lo que viene escrito desde un input, el problema esque no es un solo input, son "n" input's, por eso hago ......

$endcons = str_replace($buscar[1], $paracont[0], $endcons);
$endcons = str_replace($buscar[3], $paracont[1], $endcons);
$endcons = str_replace($buscar[5], $paracont[2], $endcons);
$endcons = str_replace($buscar[7], $paracont[3], $endcons);

porque de esa forma reemplazo las cuato varibles que estan entre "&" (son las que estan en $buscar[]), con lo que viene escrito en los input's (que son $paracont[])

pero es es obvio que no deve ser asi para los "n" input's......entonses eso habria que recorrerlo, y lo he intentado pero no me sale... lo mas cerca que e estado es
a que me cambie todo lo que esta en medio de los "&" por lo que escribo en la en pirmer input pero y los otros ???...ej:

select * from persona where nombreper matches "*&Nombre:&*" and cedula between &Cedula #1:& and &Cedula #2:& order by &Ordenar por:&;

y me devuelve:

select * from persona where nombreper matches "*MARIA*" and cedula between MARIA and MARIA order by MARIA;

cuando deveria devolverme:

select * from persona where nombreper matches "*MARIA*" and cedula between 9000000 and 9999999999 order by sexo;

espero haber sido ahora si algo claro, si no pues lo vuelvo a intentar....gracias.
..............Frueda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con un for(otra vez)

Publicado por Fernando Rueda (57 intervenciones) el 28/08/2007 21:38:45
Ok, ya lo hice....ya encntre el erros muchas gracias de todas formas..... lo hice asi:

$consulta = $_REQUEST['textsolo'];
$consulta = str_replace("\\", "", $consulta);

$buscar = explode('&', $consulta);
$lcontador = count($buscar);
$endcons = $consulta;
$i=0;
for ($f= 1; $f<($lcontador)-1; $f+=2)
{
$respconsul = "";
$paracont = $_POST["respsql"];
$cont = count($paracont);
for ($l = 0; $l < $cont; $l++)
{
$respconsul = $respconsul . $paracont[$l] . " . ";
$respconsul = str_replace("\\", "", $respconsul);
//$paracont[$i];
}
$endcons = str_replace($buscar[$f], $paracont[$i], $endcons);
$i++;
}
$endcons = str_replace("&", "", $endcons);
echo "<b>Nueva consulta: $endcons <br>\n";
echo "<b>Palabras a Validar: $respconsul <br>\n";

.......Frueda..............
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar