PHP - ayuda con un for

 
Vista:

ayuda con un for

Publicado por Fernando Rueda (57 intervenciones) el 14/08/2007 00:27:41
Buenas.....

tengo ese fragmento de codigo ya en funcion

$prueba= ($consulta);
$pos1 = strpos($prueba,'&') + 1;
$pos2 = strpos($prueba,'&',$pos1);
$respuesta = substr($prueba,$pos1,$pos2-$pos1);
echo $respuesta;

que me devuelve cualquier variable en medio de &, pero quiero hacer la operacion con "n" veces de modo que me devuelva las "n" variables que yo ponga dentro del & en la cadena....

he tratado de varias formas con el for( nose, no creo que tenga usar un while o si??) pero no me da resultado, o me dice 0, agradesco cualquier ayuda........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

Publicado por Diego Romero (1450 intervenciones) el 14/08/2007 03:19:57
$variables = explode('&',$cadena);

y tendrás un cómodo array con la cadena parseada usando '&' como separador ;)
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

Publicado por Fernando Rueda (57 intervenciones) el 14/08/2007 15:54:35
Diego gracias por responder....

ya estube mirando el fragmento que me dio pero no si si lo esoty usando mal o que porque me bora como respuesta la palabra "array", yo estaba usando esto, pero no me ha funcionado pues me bota lo comentado anteriormente.....

for ($e= 1; $e <= strlen($prueba)-1; $e++)
{
$pos1 = strpos($prueba,'&') + 1;
$pos2 = strpos($prueba,'&',$pos1);
$respuesta = substr($prueba,$pos1,$pos2-$pos1);
$respuesta1 = $respuesta & $respuesta1;
}
echo "<b> Se encontraron las palabras: $respuesta <br>\n";
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

Publicado por Diego Romero (1450 intervenciones) el 14/08/2007 18:09:30
Pues tendrás que explicarte mejor porque lo que yo entiendo es que tienes una cadena tal como esta:

$prueba = "cadena1&cadena2&cadena3";

Y lo que quieres es extraer:
cadena1
cadena2
cadena3

Por lo que me dices ahora parece que no es eso. Así que pon un ejemplo práctico y dime qué resultado esperas obtener.
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

Publicado por Fernando Rueda (57 intervenciones) el 14/08/2007 20:59:43
ok.
lo quiero es lo siguiente, realizando esta consulta:

select * from persona where nombreper=&Nombreper& and sexo=&Sexo&

optener solo lo que esta dentro del "&"

osea Nombreper, Sexo.

pero en el caso de que allan mas palabras en medio del "&" ????, esa es mi duda, estube molestando con el fragmento que me dio y ya me dio resultado, pero de todas formas no he podido hacerlo funcionar detro del for para [n] eventos.

trate con esto pero nada:

for ($e= 1; $e <= strlen($prueba)-1; $e++)
{
$proceso = explode('&',$prueba);
$respuesta= ($proceso[$e]);
}
echo "<b> Se Encontraron las Palabras: $respuesta, <br>\n";

dentro de prueba esta la consulta.

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

Publicado por Diego Romero (1450 intervenciones) el 14/08/2007 22:47:14
Ah, esto es muy diferente a lo que yo creía. Bueno, no queda otra que usar expresiones regulares. Estuve haciendo puebas con la cadena que pusiste de ejemplo y esto es lo que obtuve:

$texto = "select * from persona where nombreper=&Nombreper& and sexo=&Sexo&";
$patron = "/&(.*?)&/";
preg_match_all($patron,$texto,$salida);

echo "<pre>";
var_dump($salida);
echo "</pre>";

$salida contiene:

array(2) {
[0]=>
array(2) {
[0]=>
string(11) "&Nombreper&"
[1]=>
string(6) "&Sexo&"
}
[1]=>
array(2) {
[0]=>
string(9) "Nombreper"
[1]=>
string(4) "Sexo"
}
}

en la posición [0] contiene las cadenas con los &, en la posición [1] las cadenas sin los &, ojalá te sirva.
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

Publicado por Fernando Rueda (57 intervenciones) el 14/08/2007 23:59:34
Bueno, pues ya lo implemente, pero no es esactamente lo que nececito.
porque de todas formas no me sirve que bote el vector por completo,

osea, (que pena Diego si soy algo iqnorante) lo que nececito esque de la misma forma como explode me bota la palabra, hacer que explode avance hasta la siguiente exprecion y si hay otra exprecion que valla hasta esa tambien, por eso esque yo insisto en el for o si al caso un while, para no tener que hacer esto:

$consulta= select * from persona where sexo=&sexo& and nombreper=&nombreper&;

$prueba = ($consulta);
$proceso = explode('&', $prueba);
$respuesta = ($proceso[1]);
$respuesta1 = ($proceso[3]);

echo "<b> Se Encontraron las Palabras: $respuesta, $respuesta1 <br>\n";

y cada vez que le anexce un "palabra=&palabra&" tener que colocar una "respuesta2=($proceso[5]);".

si me hago entender Diego ???.
de todas en cada mensage le voy a agradecer su ayuda.

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

Publicado por Diego Romero (1450 intervenciones) el 15/08/2007 00:23:31
No te entiendo ni medio.

¿Qué esperas obtener exactamente?, dame un ejemplo práctico o varios de lo que esperas obtener. Por ejemplo cuando dices

echo "<b> Se Encontraron las Palabras: $respuesta, $respuesta1 <br>\n";

¿Qué esperas que contengan esas variables exactamente?.

*Pero no te olvides de poner un ejemplo de resultado práctico que satisfaga lo que tú quieres hacer*

Me da la impresión que estás encarando el problema erróneamente. Me frustra bastante cuando pongo la mejor buena voluntad de mi parte pero no se saben explicar bien *qué resultados esperan obtener*. Y te lo digo por experiencia, cuando uno no encuentra la solución a un problema se debe a que no está reconociendo correctamente el problema.
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

Publicado por Fernando Rueda (57 intervenciones) el 15/08/2007 21:37:44
Que mas Diego(que pena es muy confinasudo llamarlo directamente), ya lo hice anoche le di vueltas al asunto y pues usted quisa si tenia razon, lo estaba encarando mal y era algo muy sencillo:

lo que queria hacer era esto:
----------------------------------
$consulta = Select * from persona where nombreper=&nombreper& and sexo=&sexo& and cedula=&cedula&………………etc

0,Select * from persona where nombreper=
1, Nombreper
2, and sexo=
3,sexo
4, and cedula=
5, cedula
--------------------------------------------
y asi lo resolv (muy obvio)i:
-----------------------------------------------
$prueba = ($consulta);
$respuesta = "";
$proceso = explode('&', $prueba);
$lcontador = count($proceso);
for ($e= 1; $e<($lcontador); $e+=2)
{
$respuesta = $respuesta . $proceso [$e];
}
echo "<b> Se Encontraron las Palabras: $respuesta <br>\n";
------------------------------------------------
de todas formas muchas gracias, espero contar con usted en una proxima oportunidad y pues si nececita algo tambine tratare de ayudarle....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