Foros del Web » Programando para Internet » PHP »

No sigue las condiciones

Estas en el tema de No sigue las condiciones en el foro de PHP en Foros del Web. Bueno me estoy iniciando en esto del php y aqui estoy haciendo chapusillas xD la idea es una pagina de anuncios pero empiezan los problemas. ...
  #1 (permalink)  
Antiguo 01/09/2009, 19:56
 
Fecha de Ingreso: septiembre-2009
Mensajes: 7
Antigüedad: 14 años, 8 meses
Puntos: 0
No sigue las condiciones

Bueno me estoy iniciando en esto del php y aqui estoy haciendo chapusillas xD la idea es una pagina de anuncios pero empiezan los problemas.

Cuando realizo la primera condicion me funcioa, es decir, si el campo de nombre no esta completa me dice que lo debo introducir, el problema es que si el resultado de la condicion es else me introduce directamente los datos en la base MySql sin comprobar los demas campos

Aqui os pongo el archivo a ver si dais con el error porque yo no xD

Código PHP:
<? 
include('head.php');
include(
'logotipo.php');
require(
'config.php');

// if*1
if($nombre==NULL) {
echo 
"Debe introcucir su nombre";
}else{
// if*2
if($email=NULL) {
echo 
"Debe introducir su email";
}else{
// if*3
if($cemail=NULL) {
echo 
"Debe confirmar su email";
}else{
//if*4
if($provincia=NULL) {
echo 
"Debe introducir la provincia";
}else{
// if*5
if($telefono=NULL) {
echo 
"Debe introducir su numero de telefono";
}else{
// if*6
if($titulo=NULL) {
echo 
"Debe introducir el titulo del anuncio";
}else{
// if*7
if($descripcion=NULL) {
echo 
"Debe introducir la descripcion del anuncio";
}else{
// if*8
if($tipo=NULL) {
echo 
"Debe introducir el tipo de moto";
}else{
// if*9
if($cc=NULL) {
echo 
"Debe introducir la cilindrada de la moto";
}else{
// if*10
if($precio=NULL) {
echo 
"Debe introducir el precio de la moto";
}else{

$query "INSERT INTO anuncio (nombre ,titulo ,descripcion ,precio,provincia,email,telefono,mostrartelefono,fecha,tipo,cc) VALUES('$nombre','$titulo','$descripcion','$precio','$provincia','$email','$telefono','$mostrartelefono','$fecha','$tipo','$cc')";
mysql_query($query) or die(mysql_error());

echo 
"Se ha indtroducido correctamente";
}
// fin if*10
}// fin if*9
}// fin if*8
}// fin if*7
}// fin if*6
}// fin if*5
}// fin if*4
}// fin if*3
}// fin if*2
}// fin if*1


include('footer.php');
?>
Saludos y gracias
  #2 (permalink)  
Antiguo 01/09/2009, 20:11
 
Fecha de Ingreso: julio-2009
Mensajes: 13
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: No sigue las condiciones

Buenas amigo... mis conocimientos no son tan amplios como algunos compañeros... pero creo que no te funcionan por que cierras los if al final...

Cita:
if($nombre==NULL) {
echo "Debe introcucir su nombre";
}

else if($email=NULL) {
echo "Debe introducir su email";
}

else if($cemail=NULL) {
echo "Debe confirmar su email";
}

else if ($provincia=NULL) {
echo "Debe introducir la provincia";
}

else if($telefono=NULL) {
echo "Debe introducir su numero de telefono";
}

else if($titulo=NULL) {
echo "Debe introducir el titulo del anuncio";
}

else if($descripcion=NULL) {
echo "Debe introducir la descripcion del anuncio";
}

else if($tipo=NULL) {
echo "Debe introducir el tipo de moto";
}

else if($cc=NULL) {
echo "Debe introducir la cilindrada de la moto";
}

else if($precio=NULL) {
echo "Debe introducir el precio de la moto";
}

else {
$query = "INSERT INTO anuncio (nombre ,titulo ,descripcion ,precio,provincia,email,telefono,mostrartelefono,f echa,tipo,cc) VALUES('$nombre','$titulo','$descripcion','$precio ','$provincia','$email','$telefono','$mostrartelef ono','$fecha','$tipo','$cc')";
mysql_query($query) or die(mysql_error());

echo "Se ha indtroducido correctamente";
}
Si no me equivoco asi deberia funcionar... no lo he probado
  #3 (permalink)  
Antiguo 01/09/2009, 20:29
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Sonrisa Respuesta: No sigue las condiciones

hola mmejias ... qué tal !!!

echo "<script>alert('NO DEJAR VACIO EL CAMPO DE.".$tu_campo." ');</script>";
echo "<script>location.href='javascript:history.go(-1)';</script>";


//en el primer echo le das un mensaje con el campo que dejó vacío
//en el 2do echo lo regresas al FORM, sucede que una vez que haya un error debes regresarlo para que no continúe ejecutando códigos, en tu caso, no llegue a insertar en la DB. Te recomiendo hacer SOLO UN IF con todas las condiciones en un OR, es decir si este ==NULL OR otro==NULL OR ... se entiende ???:

If ((condicion1)||(condicion2)){// el || es un OR, puedes poner tantos OR como quieras anidados ....

...los echo

}else{

... insertas en la tabla
}

Esto te digo pq tantos ELSE IF te pueden confundir ....

...espero te sirva .. mis salu2
  #4 (permalink)  
Antiguo 01/09/2009, 20:45
 
Fecha de Ingreso: julio-2009
Mensajes: 13
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: No sigue las condiciones

hola joaowizard... gracias por la aclaratoria... tienes razon!! ciertamente es mejor anidar las condiciones en una sola... ahora el script que colocas alli sirve para ese caso??

y en el caso que presenta Aaron46 seria && porq el segun entiendo quiere que ningun campo sea nulo!!

quedando algo asi

iF (($nombre==NULL) && ($email=NULL) && ($cemail=NULL) && ($provincia=NULL) && ($telefono=NULL) && ($titulo=NULL) && ($descripcion=NULL) && ($tipo=NULL) && ($cc=NULL) && ($precio=NULL))
{
echo "Ha dejado un campo vacio"
}

else {
$query = "INSERT INTO anuncio (nombre ,titulo ,descripcion ,precio,provincia,email,telefono,mostrartelefono,f echa,tipo,cc) VALUES('$nombre','$titulo','$descripcion','$precio ','$provincia','$email','$telefono','$mostrartelef ono','$fecha','$tipo','$cc')";
mysql_query($query) or die(mysql_error());

echo "Se ha indtroducido correctamente";
}
  #5 (permalink)  
Antiguo 01/09/2009, 20:51
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Respuesta: No sigue las condiciones

hola again ..

si, el script sirve en ese caso que pones, solo que el mensaje no sería ESPECÍFICO sino GENERAL, algo así como "NO PUEDE DEJAR CAMPOS VACÍOS" ... ah, en lo que pones iF (($nombre==NULL) && ($email=NULL) &&.... esos && serían AND, así tienen que cumplirse TODAS las condiciones para que entre en ese IF, en tu caso debes usar OR REPRESENTADOS ASÍ || ...


SALUDOS !!!
  #6 (permalink)  
Antiguo 01/09/2009, 21:01
 
Fecha de Ingreso: julio-2009
Mensajes: 13
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: No sigue las condiciones

gracias amigo... bien dicen: "Cada Día Se Aprende Algo Nuevo"
  #7 (permalink)  
Antiguo 02/09/2009, 05:32
 
Fecha de Ingreso: septiembre-2009
Mensajes: 7
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: No sigue las condiciones

Cita:
Iniciado por joaowizard Ver Mensaje
hola again ..

si, el script sirve en ese caso que pones, solo que el mensaje no sería ESPECÍFICO sino GENERAL, algo así como "NO PUEDE DEJAR CAMPOS VACÍOS" ... ah, en lo que pones iF (($nombre==NULL) && ($email=NULL) &&.... esos && serían AND, así tienen que cumplirse TODAS las condiciones para que entre en ese IF, en tu caso debes usar OR REPRESENTADOS ASÍ || ...


SALUDOS !!!
Exacto , lo tengo de forma independiente para que cada error me de una frase distinta!!

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 08:27.