Foros del Web » Programando para Internet » PHP »

problema con implode

Estas en el tema de problema con implode en el foro de PHP en Foros del Web. Hola recientemente preguntaba en el foro de cómo ingresar un array a un campo en la base de datos, gracias a manoloweb lo logre .. ...
  #1 (permalink)  
Antiguo 05/08/2003, 10:04
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 21 años, 4 meses
Puntos: 0
Exclamación problema con implode

Hola recientemente preguntaba en el foro de cómo ingresar un array a un campo en la base de datos, gracias a manoloweb lo logre .. pero este cóodigo sólo funciona en la versión de php 4.3.2 y mi server (mandrake 7.2) esta en 4.0.3pl1, no sé si la funcion varia pero al ejecutarlo me dice "Bad arguments to implode() in.."

el codigo es

$ageo=implode(",",$_POST[txt_ageografica]);


lo que hace es agregar la lista de los elementos en el select multiple del campo txt_ageografia despues del envio $_POST, como les he dicho en mi localhost o mi equipo que tiene la versionde php 4.3.2 funciona bien pero en cambio lo subo a mi server que tiene 4.0.3pl1 de php da el error de BAr darguments to implode()..


me pueden ayudar con esto?, al parecer no acepta $_POST la funcion implode..


gracias
  #2 (permalink)  
Antiguo 05/08/2003, 10:13
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 9 meses
Puntos: 5
El problema no es con el implode, es con la variable global de $_POST... usalo así

$ageo=implode(",",$HTTP_POST_VARS[txt_ageografica]);

__________________
Manoloweb
  #3 (permalink)  
Antiguo 05/08/2003, 10:41
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 21 años, 4 meses
Puntos: 0
hola si me funciona lo que dices!, pero en mi código php en el action se envia a si mismo o en la misma pagina, en otro function guardo los datos en la bd.. pero necesito hacer lo siguiente por que en la funcion tengo 2 formas en caso de ingresar un nuevo registro haga lo siguiente, en caso de actualizar un registro haga lo siguiente:

asi no me funciona:

<?

if (!$HTTP_POST_VARS){

$ageo=implode(", ",$HTTP_POST_VARS[txt_ageografica]);

}
?>


para probar si recoge los datos del array pero no los hace

y si ejecuto de la siguiente forma:

<?

if (!$HTTP_POST_VARS){

$ageo=implode(", ",[txt_ageografica]);

}
?>
<? echo $ageo; ?>


me da un error de parse


como puedo solucionar el problema??

gracias y disculpa la molestia..

  #4 (permalink)  
Antiguo 05/08/2003, 11:27
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 22 años, 4 meses
Puntos: 10
pues recuerda k los argumentos necesario para el implode son 2, el primero es es caracter de union de los elementos, y el segundo es un array, pero tu estas pasando un elemento k no es un array, si bien, lo sacas del array $_POST solo seleccionas el de un elemento del array en particular, talvez ese elemnto dentro del array al k estas llamando, no es precisamente otro array, para ello nesesitas k $txt_geografica sea un array tambien, o de lo contrario el parametro solo deberia ser $_POST, pero no es eso lo k tu buscas

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #5 (permalink)  
Antiguo 05/08/2003, 11:30
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 9 meses
Puntos: 5
$ageo=implode(", ",$HTTP_POST_VARS["txt_ageografica"]);

__________________
Manoloweb
  #6 (permalink)  
Antiguo 05/08/2003, 13:58
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Fijate en este if:
Código PHP:
if (!$HTTP_POST_VARS){ 
Estas diciendo que si NO existe $HTTP_POST_VARS, ejecute el codigo dentro del if. Asi que si no existe, no puedes usarlo dentro del if. No se si ese NO es lo que quieres o se te colo.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 06/08/2003, 09:26
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 21 años, 4 meses
Puntos: 0
Pregunta como hago lo siguiente...

Cómo hago para hacer lo siguiente en php


Si el formulario es enviado por POST entonces

//que se traiga el array del select txt_ageografica
$ageo=implode(", ",$HTTP_POST_VARS["txt_ageografica"]);

fin
  #8 (permalink)  
Antiguo 06/08/2003, 09:31
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 22 años, 4 meses
Puntos: 10
podrias poner aqui el codigo del formulario, estoy seguro k asi identificaremos tu problema

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #9 (permalink)  
Antiguo 06/08/2003, 09:42
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 21 años, 4 meses
Puntos: 0
ok este es mi codigo:


<FORM METHOD="POST" ACTION="ejemplo.php">

<select name="txt_ageografica[]" multiple size="6">
<option value="Bogotá">Bogotá<option value="Chocó">Chocó<option value="Costa">Costa<option value="MM">MM<option value="Nacional">Nacional<option value="Sur">Sur<option value="Urabá">Urabá</select>

<p><INPUT TYPE="submit">
</FORM>
<?

if ($HTTP_POST_VARS) {
$ageo=implode(", ",$HTTP_POST_VARS["txt_ageografica"]);
}

echo $ageo; ?>


ok esto funciona bien, pero mi codigo esta hecho en Code Charge y pues recibi este trabajo asi y es engorroso acomodarle ciertas cosas por que el code charge genera el codigo a su manera..

de todas formas aqui me las ingenio...

  #10 (permalink)  
Antiguo 06/08/2003, 09:47
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 22 años, 4 meses
Puntos: 10
haz probado ya de la foema mas simple??

Código PHP:
implode(","$txt_ageografica); 
__________________
se despide hasta la proxima
Gonzalo Castillo
  #11 (permalink)  
Antiguo 06/08/2003, 10:09
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 21 años, 4 meses
Puntos: 0
Listo!

Uff listo descanse era como tu decias..

$ageo=implode(", ", $fldtxt_ageografica);

el problema estaba en la forma como yo implementaba el implode

además habia q colocarlo adecuadamente en caso de insertar o actualizar dentro del codigo del Code Charge, como les comentaba he recibido un trabajo y las lineas de programacion corresponden a este software y a veces es tedioso...


saludos y muchas gracias!


a todos!



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 22:38.