Foros del Web » Programando para Internet » PHP »

ayuda con condifcion con if..

Estas en el tema de ayuda con condifcion con if.. en el foro de PHP en Foros del Web. Hola, tengo un problema y no encuentro como resolver lo siguiente. yo tengo 3 campos por ej nombre, apellido, y documento, y necesito hacer 2 ...
  #1 (permalink)  
Antiguo 05/05/2009, 20:36
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
ayuda con condifcion con if..

Hola, tengo un problema y no encuentro como resolver lo siguiente.
yo tengo 3 campos por ej nombre, apellido, y documento, y necesito hacer 2 condiciones, una que si los 3 input tienen algun dato que inserte en la db mysql, pero si por lo menos 1 de los 3 esta vacio que ponga un mensaje (ej falta completar datos).

el tema que si los 3 no son vacios hice lo siguiente;
if ($dato1!=NULL && $dato2 !=NULL && $dato3!=NULL){
........

pero para el tema de que si por lo menos 1 no tiene dato no inserte y ponga un mensaje no encuentro forma de hacerlo.

desde ya muchas gracias.
  #2 (permalink)  
Antiguo 05/05/2009, 20:42
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: ayuda con condifcion con if..

ejemplo:

if(!empty($dato1) && !empty($dato2) && !empty($dato3))
{
pones el insert aqui
}
else
{
echo "no fueron completados todos los datos";
}
  #3 (permalink)  
Antiguo 05/05/2009, 20:47
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
Respuesta: ayuda con condifcion con if..

si asi se podria hacer, el problema que yo tengo que son 4 filas de 3 que debe insertar, osea tengo esto para que se entienda bien.

//aca no me sale
for($i=1; $i<5; $i++)
{
$dato1=$_POST["haras".$i];
$dato2=$_POST["cant".$i];
$dato3=$_POST["fecha".$i];

if ($dato1!=NULL && $dato2 !=NULL && $dato3!=NULL){
mysql_query("insert into prueba (hara,cantidad,fecha) values ('$dato1','$dato2','$dato3')") or die(mysql_error());
}
}
echo "se inserto todo correctamente";

}

ahi lo que esta haciendo bien es que si estan todos completos los input osea no vacios inserta, ahora como hago para poner que si hay 1 de los 3 por lo menos vacios de algun mensaje. POrque el tema es que si completo la segunda fila y la 4ta fila en la 3era al esta vacia me va a cortar el bucle o no?.
espero que se haya entendido mas o menos.

gracias.
  #4 (permalink)  
Antiguo 05/05/2009, 21:04
Avatar de berper  
Fecha de Ingreso: abril-2009
Ubicación: Mexico
Mensajes: 74
Antigüedad: 15 años
Puntos: 2
Respuesta: ayuda con condifcion con if..

Prueba con esto:

Código PHP:
<?php
for($i=1$i<5$i++)
{
$dato1=$_POST["haras".$i];
$dato2=$_POST["cant".$i];
$dato3=$_POST["fecha".$i];

mysql_query("insert into prueba (hara,cantidad,fecha) values ('$dato1','$dato2','$dato3')") or die(mysql_error());
if (!empty(
$dato1) or !empty($dato2) or !empty($dato3)){echo 'Error: Uno de los campos de la fila '.$i.'esta vacio';}
}
?>
  #5 (permalink)  
Antiguo 05/05/2009, 21:16
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
Respuesta: ayuda con condifcion con if..

probe asi como me decis, pero me inserta las filas tengan o no datos y el mensaje aparece si no completas alguna fila.
la idea es que solo inserte las filas que esten completas y si hay alguna que tiene 1 valor por lo menos diga el mensaje.
Si estan los 3 vacios de la fila que solo ignore esa fila para insertar pero que no ponga nada.

algo asi es la idea.

gracias.
  #6 (permalink)  
Antiguo 05/05/2009, 21:21
Avatar de berper  
Fecha de Ingreso: abril-2009
Ubicación: Mexico
Mensajes: 74
Antigüedad: 15 años
Puntos: 2
Respuesta: ayuda con condifcion con if..

No se si te entendi del todo, pero esto es lo que buscas?:

Código PHP:
<?php
for($i=1$i<5$i++)
{
$dato1=$_POST["haras".$i];
$dato2=$_POST["cant".$i];
$dato3=$_POST["fecha".$i];

if (!empty(
$dato1) and !empty($dato2) and !empty($dato3))
{
mysql_query("insert into prueba (hara,cantidad,fecha) values ('$dato1','$dato2','$dato3')") or die(mysql_error());}
if (!empty(
$dato1) or !empty($dato2) or !empty($dato3)){echo 'Error: Uno de los campos de la fila '.$i.'esta vacio';}
}
?>
  #7 (permalink)  
Antiguo 05/05/2009, 21:24
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 3 meses
Puntos: 7
Respuesta: ayuda con condifcion con if..

Cita:
Iniciado por berper Ver Mensaje
Prueba con esto:

Código PHP:
<?php
for($i=1$i<5$i++)
{
$dato1=$_POST["haras".$i];
$dato2=$_POST["cant".$i];
$dato3=$_POST["fecha".$i];

mysql_query("insert into prueba (hara,cantidad,fecha) values ('$dato1','$dato2','$dato3')") or die(mysql_error());
if (!empty(
$dato1) or !empty($dato2) or !empty($dato3)){echo 'Error: Uno de los campos de la fila '.$i.'esta vacio';}
}
?>
Pero así...

Código PHP:
<?php
for($i=1$i<5$i++)
{
$dato1=$_POST["haras".$i];
$dato2=$_POST["cant".$i];
$dato3=$_POST["fecha".$i];
if (!empty(
$dato1) && !empty($dato2) && !empty($dato3)){
mysql_query("insert into prueba (hara,cantidad,fecha) values ('$dato1','$dato2','$dato3')") or die(mysql_error());
}else { echo 
'Error: Uno de los campos de la fila '.$i.'esta vacio'; }
}
?>
Saludos.
  #8 (permalink)  
Antiguo 05/05/2009, 21:33
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
Respuesta: ayuda con condifcion con if..

asi tampoco anda. Te explico con un ejemplo a ver si se entiende lo que necesito
yo tengo un formulario con 3 datos y 4 filas con los mismos datos, ej hara1 cant1 fecha1 en la otra fila hara2 m cant2 y fecha2 y asi hasta 4.
el usuario puede llenar 1 fila como las 4. eso depende de lo que necesite.
Por lo tanto lo que necesito es, si la fila esta completa que inserte, si esta incompleta que no. pero con la condifcion que si hay alguna incompleta (no vacia totalemente) no inserte nada hasta que se llene toda la fila.

espero que se entienda ahi.

saludos.

Última edición por diegomel; 05/05/2009 a las 21:50
  #9 (permalink)  
Antiguo 05/05/2009, 22:15
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 3 meses
Puntos: 7
Respuesta: ayuda con condifcion con if..

¿Podrías mostrarnos el HTML? Sería más fácil verlo.

Saludos.
  #10 (permalink)  
Antiguo 05/05/2009, 22:18
 
Fecha de Ingreso: junio-2008
Ubicación: Porto Alegre
Mensajes: 67
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: ayuda con condifcion con if..

Hola Diegomel!

Puedes preguntar variable por variable, no se si es lo mejor pero podría funcional:

Código PHP:
If ($dato1==""){echo "falta completar datos";}
Else { if (
$dato2==""){echo "falta completar datos";}
   Else { if (
$dato1==""){echo "falta completar datos";}
          Else {echo 
"Y se guarda los datos";}}} 
Éxitos en el proyecto!

Abrazos!
  #11 (permalink)  
Antiguo 05/05/2009, 22:27
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: ayuda con condifcion con if..

Código PHP:
function campos_vacios($formulario)
    {
        foreach(
$formulario as $key => $value)
        {
            if(!isset(
$key) || empty($value))
            {
                return 
false;
            }
            
            
        }
        return 
true;
        
        
        
    }

if(
campos_vacios($_POST))
{
//los campos estan completos

}
else
{
//los campos estan incompletos

  #12 (permalink)  
Antiguo 06/05/2009, 07:55
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
Respuesta: ayuda con condifcion con if..

disculpa que te pregunte esto pero recien empiezo con php, que iria en $formulario, $key y $value en la funcion?.

adjunto el html asi lo ven mas claro. Por que debe haber una condicion en la cual el usuario pueda completar de los 4 los que necesite, no necesariamente las 4 filas , puede ser que necesite solo 1 y la idea es que se inserte esa sola y no de mensajes al tener los 3 campos llenos. osea haras1 , cant1 y fecha1, si completa solo esa linea tendria que insertar la linea y dar el mensaje que se inserto todo bien, ahora si en ves de llenar los 3 llena haras1 y cant1 debe decir que falta completar datos. El tema aca esta en que el usuario no siempre completa los 12 datos , inseta segun necesite el caso puede ser 1 2 3 o 4 por esta razon es la que se me complica hacerlo.

saludos y gracias.

Código HTML:
<form id="form1" name="form1" method="post" action="">
      <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
        Haras&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cantidad&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fecha<br />
          <label>
            &nbsp;&nbsp;&nbsp;
            <input type="text" name="haras1" id="haras1" />
            &nbsp;
            <input type="text" name="cant1" id="cant1" />
          </label>
          &nbsp;
          <input type="text" name="fecha1" id="fecha1" />
&nbsp;&nbsp;&nbsp;</p>
        <p>
          <input type="text" name="haras2" id="haras2" />
          &nbsp;
          <input type="text" name="cant2" id="cant2" />
          &nbsp;
          <input type="text" name="fecha2" id="fecha2" />
        </p>
        <p>
          <input type="text" name="haras3" id="haras3" />
          &nbsp;
          <input type="text" name="cant3" id="cant3" />
          &nbsp;
          <input type="text" name="fecha3" id="fecha3" />
        </p>
        <p>
          <input type="text" name="haras4" id="haras4" />
          &nbsp;
          <input type="text" name="cant4" id="cant4" />
          &nbsp;
          <input type="text" name="fecha4" id="fecha4" />
        </p>
        <p>
          <input type="submit" name="enviar" id="enviar" value="enviar" />
        </p>
    </form> 
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 23:49.