Foros del Web » Programando para Internet » PHP »

Problema para recuperar variables opcionales

Estas en el tema de Problema para recuperar variables opcionales en el foro de PHP en Foros del Web. Qué tal: Estoy recogiendo de un formulario algunas variables, lo hago por medio de un ciclo FOREACH. Dentro del formulario hay algunas variables que se ...
  #1 (permalink)  
Antiguo 08/08/2008, 10:50
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 19 años, 2 meses
Puntos: 0
Pregunta Problema para recuperar variables opcionales

Qué tal:

Estoy recogiendo de un formulario algunas variables, lo hago por medio de un ciclo FOREACH. Dentro del formulario hay algunas variables que se llenan de manera opcional. A la hora de recoger las variables y validar cuales están llenas y cuales no, tengo problemas en validar las que están vacías.

Aquí el ejemplo del formulario, resumido:
Código HTML:
<form action="ingresa_reg.php" method="post" enctype="application/x-www-form-urlencoded" name="formulario">
<input name="nombre_participante" type="text" value="nombre_participante" />
<input name="nombre_participante1" type="text" value="" />
<input name="nombre_participante2" type="text" value="" />
<input name="nombre_participante3" type="text" value="" />
<input name="nombre_participante4" type="text" value="" />
<input name="enviar" type="submit" value="enviar" />
</form> 
Aquí el script que uso, resumido:
Código PHP:
$querys "INSERT INTO registros 
        (nombre_participante)
        VALUES ('$nombre_participante')"
;
for(
$i=1$i<5$i++){
    if(!empty(
$nombre_participante[$i])) {
        
$querys .= ", ('$nombre_participante{$i}',)";
    } else {
        
$querys .= "";
    }

¿Cómo puedo validar si un campo de nombre "campo1", "campo2", "campo3"... está lleno, y ejecutar unas sentencias que correspondan para ese campo?

Ejemplo, si "campo1" está lleno, inserta una linea en DB para ese campo, si "campo2" está lleno, escribe otra linea, y así sucesivamente.

El problema que tengo es que aunque los campos vengan vacíos, aun así me inserta las lineas.

ISSET no sirve en este caso, porque el campo como variable se declara, pero viene vacío.

Saludos.
Nota: Edité el post ya que estaba muy confuso, espero ahora sea más claro.

Última edición por yconoclasta; 10/08/2008 a las 19:57
  #2 (permalink)  
Antiguo 20/08/2008, 11:24
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: Problema para recuperar variables opcionales

Gracias a todos por sus valiosísimas respuestas.
Al final lo solucioné de esta manera:

Código PHP:
        if(!empty($nombre_participante1)) {
            
$querys .= ", ('$nombre_union', '$nombre_participante1', '$puesto1', '$nombre_acompanante1', '$importe_deposito', '$fecha_ficha_deposito', '$hora_ficha_deposito', '$importe_transferencia', '$fecha_transferencia', '$cuenta_origen', '$referencia_numerica', '$folio_interbancario', '$folio_internet', '$calle', '$numero_interior', '$colonia', '$ciudad', '$estado', '$codigo_postal', '$telefono', '$fax', '$email', '$email_union', '$rfc_union')";
        } if(!empty(
$nombre_participante2)) {
            
$querys .= ", ('$nombre_union', '$nombre_participante2', '$puesto2', '$nombre_acompanante2', '$importe_deposito', '$fecha_ficha_deposito', '$hora_ficha_deposito', '$importe_transferencia', '$fecha_transferencia', '$cuenta_origen', '$referencia_numerica', '$folio_interbancario', '$folio_internet', '$calle', '$numero_interior', '$colonia', '$ciudad', '$estado', '$codigo_postal', '$telefono', '$fax', '$email', '$email_union', '$rfc_union')";
        } if(!empty(
$nombre_participante3)) {
            
$querys .= ", ('$nombre_union', '$nombre_participante3', '$puesto3', '$nombre_acompanante3', '$importe_deposito', '$fecha_ficha_deposito', '$hora_ficha_deposito', '$importe_transferencia', '$fecha_transferencia', '$cuenta_origen', '$referencia_numerica', '$folio_interbancario', '$folio_internet', '$calle', '$numero_interior', '$colonia', '$ciudad', '$estado', '$codigo_postal', '$telefono', '$fax', '$email', '$email_union', '$rfc_union')";
        } if(!empty(
$nombre_participante4)) {
            
$querys .= ", ('$nombre_union', '$nombre_participante4', '$puesto4', '$nombre_acompanante4', '$importe_deposito', '$fecha_ficha_deposito', '$hora_ficha_deposito', '$importe_transferencia', '$fecha_transferencia', '$cuenta_origen', '$referencia_numerica', '$folio_interbancario', '$folio_internet', '$calle', '$numero_interior', '$colonia', '$ciudad', '$estado', '$codigo_postal', '$telefono', '$fax', '$email', '$email_union', '$rfc_union')";
        } 
Sé que esa no es la forma más elegante de hacerlo, pero nunca pude-supe poner la validación dentro de un ciclo FOR, para ahorrarme la cantidad exagerada de código repetitivo.

Si alguien sabe cómo hacerlo, le agradecería mucho un ejemplo, me ayudará a hacer código más limpio y sencillo en el futuro.

Saludos.
  #3 (permalink)  
Antiguo 21/08/2008, 07:24
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema para recuperar variables opcionales

... veamos, parece que la idea es insertar un registro para cada variable que te venga del formulario, ¿es eso?

Creo que así debería funcionar

Código PHP:
$querys "INSERT INTO registros (nombre_participante) VALUES ";

$registros = array();
for(
$i=1$i<5$i++) {
    if(!empty(
$_POST['nombre_participante'.$i])) {
        
$registros[] = ' ("'.$_POST['nombre_participante'.$i].'")';
    }
}

$querys .= implode(','$registros); 
Saludos.
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 10:37.