Problema para comparar numero con dos condiciones
Publicado por Leandro (3 intervenciones) el 27/03/2020 20:28:45
Buenas a todos,
Estoy teniendo un problema al comparar numeros con dos condiciones, lo que trato de hacer es un "Validador" de telefonos, si se le puede decir asi, ya le agregue muchas condiciones y todas funcionan menos una. La condicion escrita seria la siguiente:
SI el numero ingresado tiene 10 caracteres
sustraer los primeros 3 y comparar contra la columna caracteristicas, si son iguales entonces, Variable = 1 (VALIDO)
SINO
SI el numero ingresado tiene 10 caracteres, sustraer los primeros 4 y comparar contra la columna caracteristicas
si son iguales, entonces Variable = 1 (VALIDO)
SINO
Variable= 0 (IVALIDO)
EN PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
if (strlen($telefono)==10) {
$codigoArea = substr($telefono,0,4);
$sql3 = "SELECT count(*) cant FROM `caracteristicas` WHERE `indicativo` = ".$codigoArea;
$q = $pdo->prepare($sql3);
$q->execute();
$data = $q->fetch(PDO::FETCH_ASSOC);
if ($data['cant']==1) { //valido
$sql2 = "update `validacion` set estado = '1' where id = ".$id;
$q = $pdo->prepare($sql2);
$q->execute();
continue;
} else { if (strlen($telefono)==10)
$codigoArea = substr($telefono,0,3);
$sql3 = "SELECT count(*) cant FROM `caracteristicas` WHERE `indicativo` = ".$codigoArea;
$q = $pdo->prepare($sql3);
$q->execute();
$data = $q->fetch(PDO::FETCH_ASSOC);
if ($data['cant']==1) { //valido
$sql2 = "update `validacion` set estado = '1' where id = ".$id;
$q = $pdo->prepare($sql2);
$q->execute();
continue;
} else { //invalido
$sql2 = "update `validacion` set estado = '0' where id = ".$id;
$q = $pdo->prepare($sql2);
$q->execute();
continue;
}
}
}
Use uno parecido para decir que si alguien escribe mal un telefono y pone "1115"y 8 digitos lo tome como valido asi:
Si el numero es de 12 caracteres, debe tener 1115+8digitos o codigo de area del interior + 8 digitos sin 15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if (strlen($telefono)==12) {
if (substr($telefono,0,4)=='1115') {
$sql2 = "update `validacion` set estado = '1' where id = ".$id;
$q = $pdo->prepare($sql2);
$q->execute();
continue;
} else {
//buscar codigo de area valido
$codigoArea = substr($telefono,0,4);
$sql3 = "SELECT count(*) cant FROM `caracteristicas` WHERE `indicativo` = ".$codigoArea;
$q = $pdo->prepare($sql3);
$q->execute();
$data = $q->fetch(PDO::FETCH_ASSOC);
if ($data['cant']==1) { //valido
$sql2 = "update `validacion` set estado = '1' where id = ".$id;
$q = $pdo->prepare($sql2);
$q->execute();
continue;
} else { //invalido
$sql2 = "update `validacion` set estado = '0' where id = ".$id;
$q = $pdo->prepare($sql2);
$q->execute();
continue;
}
}
}
asi que le calcule que seria simil, pero de igual forma los estoy poniendo como INVALIDOS y no encuentro el error ya que son numeros validos
desde ya gracias por la ayuda. Saludos!
Valora esta pregunta


0