PHP - No me guarda el registro y ya no se por que.

   
Vista:

No me guarda el registro y ya no se por que.

Publicado por Sergio (20 intervenciones) el 03/07/2017 20:52:42
Saludos de nuevo, El tema es que, a si, no me guarda los registros, lo hace todo bien hasta que llega a -- if ($row == FALSE){-- si encuentra un resultado salta al alert("Ese Usuario ya existe."); pero si el resultado es false o sea no hay registros en la DB no hace nada , no da ni un solo erro , en la consola de firefox nada y ya no se que puede ser.

GRACIAS DE ANTEMANO.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
$query = $nuevoconex->prepare('SELECT * FROM `admin-user` WHERE `admin-email`= ? LIMIT 1');
$query->execute(array($adminemail));
 
while($row = $query->fetch(PDO::FETCH_OBJ)) {
/*its getting data in line.And its an object*/
     if ($row == FALSE){
 
if ($_POST['adminpass'] === $adminpass2){
 
    $sql = "INSERT INTO `admin-user`
(`admin-nombre`, `admin-pass`, `admin-tipo`, `admin-email`, 
`admin-fecha`, `admin-direccion`, `admin-localidad`, 
`admin-provincia`, `admin-pais`, `admin-telefono`, 
`admin-telefono2`, `admin-dni`, `admin-cp`)

VALUES (:nombre, :pass, :tipo, :email, :fecha1, :direccion, :localidad,
:provincia, :pais, :telefono, :telef, :dni, :cp )";
 
  $stm = $nuevoconex->prepare($sql);
     if(isset($stm) && $stm !== FALSE){
$stm->bindParam(':nombre', $adminnombre , PDO::PARAM_STR);
$stm->bindParam(':pass', $passcrypt , PDO::PARAM_STR);
$stm->bindParam(':tipo', $admintipo , PDO::PARAM_STR);
$stm->bindParam(':email', $adminemail , PDO::PARAM_STR);
$stm->bindParam(':fecha1', $fecha1 , PDO::PARAM_STR);
$stm->bindParam(':direccion', $admindireccion , PDO::PARAM_STR);
$stm->bindParam(':localidad', $adminlocalidad , PDO::PARAM_STR);
$stm->bindParam(':provincia', $adminprovincia , PDO::PARAM_STR);
$stm->bindParam(':pais', $adminpais , PDO::PARAM_STR);
$stm->bindParam(':telefono', $admintelefono , PDO::PARAM_INT);
$stm->bindParam(':telef', $admintelefono2 , PDO::PARAM_INT);
$stm->bindParam(':dni', $admindni , PDO::PARAM_STR);
$stm->bindParam(':cp', $admincp , PDO::PARAM_INT);
 
$stm->execute();
 
?>
      <script language="javascript">
      alert("Se ha añadido el empleado con exito.");
window.location="../usuario-lista.php";
</script>
<?
 
     }else {
?>
      <script language="javascript">
      alert("NO se ha podido realizar el registro con exito.");
window.location="../usuario-add.php";
</script>
<?}
 
 }else {
 
    ?>
      <script language="javascript">
      alert("Las contraseñas no coinciden.");
window.location="../sm-admin/usuario-add.php";
</script>
<?
 }
 
}else{
 
?>
      <script language="javascript">
      alert("Ese Usuario ya existe.");
window.location="../usuario-add.php";
</script>
<?
 
     }
}


Y de esta otra manera si y he revisado el codigo mil veces y no veo el fallo, alguna ayudita plis. El problema esta en el WHILE

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
if ($_POST['adminpass'] === $adminpass2){
 
    $sql = "INSERT INTO `admin-user`
(`admin-nombre`, `admin-pass`, `admin-tipo`, `admin-email`, 
`admin-fecha`, `admin-direccion`, `admin-localidad`, 
`admin-provincia`, `admin-pais`, `admin-telefono`, 
`admin-telefono2`, `admin-dni`, `admin-cp`)

VALUES (:nombre, :pass, :tipo, :email, :fecha1, :direccion, :localidad,
:provincia, :pais, :telefono, :telef, :dni, :cp )";
 
  $stm = $nuevoconex->prepare($sql);
     if(isset($stm) && $stm !== FALSE){
$stm->bindParam(':nombre', $adminnombre , PDO::PARAM_STR);
$stm->bindParam(':pass', $passcrypt , PDO::PARAM_STR);
$stm->bindParam(':tipo', $admintipo , PDO::PARAM_STR);
$stm->bindParam(':email', $adminemail , PDO::PARAM_STR);
$stm->bindParam(':fecha1', $fecha1 , PDO::PARAM_STR);
$stm->bindParam(':direccion', $admindireccion , PDO::PARAM_STR);
$stm->bindParam(':localidad', $adminlocalidad , PDO::PARAM_STR);
$stm->bindParam(':provincia', $adminprovincia , PDO::PARAM_STR);
$stm->bindParam(':pais', $adminpais , PDO::PARAM_STR);
$stm->bindParam(':telefono', $admintelefono , PDO::PARAM_INT);
$stm->bindParam(':telef', $admintelefono2 , PDO::PARAM_INT);
$stm->bindParam(':dni', $admindni , PDO::PARAM_STR);
$stm->bindParam(':cp', $admincp , PDO::PARAM_INT);
 
$stm->execute();
 
?>
      <script language="javascript">
      alert("Se ha añadido el empleado con exito.");
window.location="../usuario-lista.php";
</script>
<?
 
     }else {
?>
      <script language="javascript">
      alert("NO se ha podido realizar el registro con exito.");
window.location="../usuario-add.php";
</script>
<?}
 
 }else {
 
    ?>
      <script language="javascript">
      alert("Las contraseñas no coinciden.");
window.location="../sm-admin/usuario-add.php";
</script>
<?
 }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

No me guarda el registro y ya no se por que.

Publicado por Sergio (20 intervenciones) el 04/07/2017 17:25:45
Bueno la cosa esta ahora a si, pero sigue igual, el problema es que si ejecuto lo que esta en negrita dentro del while no funciona, el CASE TRUE si, se ejecuta bien, lo que esta en negrita mas abajo, por separado funciona bien, pero necesito comprobar si existe el email para no duplicarlo, pero es que ya no se que pasa,

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
 
include_once 'conexion-db.php';
/*Creamos la conexion*/
$nuevoconex = new Conexion();
 
/*Creamos la variables*/
$fecha1 = date('y-m-d');
 
$adminnombre    = $_POST['adminnombre'];
$adminpass2     = $_POST['adminpass2'];
$admintipo      = $_POST['admintipo'];
$adminemail     = $_POST['adminemail'];
$admindireccion = $_POST['admindireccion'];
$adminlocalidad = $_POST['adminlocalidad'];
$adminprovincia = $_POST['adminprovincia'];
$adminpais      = $_POST['adminpais'];
$admintelefono  = $_POST['admintelefono'];
$admintelefono2 = $_POST['admintelefono2'];
$admindni       = $_POST['admindni'];
$admincp        = $_POST['admincp'];
$adminpass      = $_POST['adminpass'];
$passcrypt      = password_hash($adminpass,PASSWORD_BCRYPT);
 
 
if(isset($_POST['adminnombre'])&&!empty($_POST['adminnombre'])&&
  	  //isset($_POST['adminpass'])&&!empty($_POST['adminpass'])&& 
  	  //isset($_POST['adminpass2'])&&!empty($_POST['adminpass2'])&& 
  	  isset($_POST['admintipo'])&&!empty($_POST['admintipo'])&&
  	  isset($_POST['adminemail'])&&!empty($_POST['adminemail'])&&
  	  isset($_POST['admindireccion'])&&!empty($_POST['admindireccion'])&&
  	  isset($_POST['adminlocalidad'])&&!empty($_POST['adminlocalidad'])&&
  	  isset($_POST['adminprovincia'])&&!empty($_POST['adminprovincia'])&&
  	  isset($_POST['adminpais'])&&!empty($_POST['adminpais'])&&
  	  isset($_POST['admintelefono'])&&!empty($_POST['admintelefono'])&&
  	  isset($_POST['admintelefono2'])&&!empty($_POST['admintelefono2'])&&
  	  isset($_POST['admindni'])&&!empty($_POST['admindni'])&&
  	  isset($_POST['admincp'])&&!empty($_POST['admincp'])){
 
if($_POST['adminpass2'] == $_POST['adminpass']){
 
$query = $nuevoconex->prepare('SELECT * FROM `admin-user` WHERE `admin-email`= ?');
$query->execute(array($adminemail));
 
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
 
switch  ($row){
    case true: //HASTA AQUI SE EJECUTA BIEN
        echo 1; //"Existe ese E-mail.";
         break;
    case false:// AQUI ES COMO SI $ROW SOLO TUVIESE UN VALOR TRUE POR QUE NO HACE NADA
 
$sql = "INSERT INTO `admin-user`
(`admin-nombre`, `admin-pass`, `admin-tipo`, `admin-email`, 
`admin-fecha`, `admin-direccion`, `admin-localidad`, 
`admin-provincia`, `admin-pais`, `admin-telefono`, 
`admin-telefono2`, `admin-dni`, `admin-cp`)

VALUES (:nombre, :pass, :tipo, :email, :fecha1, :direccion, :localidad,
:provincia, :pais, :telefono, :telef, :dni, :cp )";
 
  $stm = $nuevoconex->prepare($sql);
 
if(isset($stm) && $stm !== FALSE){
$stm->bindParam(':nombre', $adminnombre , PDO::PARAM_STR);
$stm->bindParam(':pass', $passcrypt , PDO::PARAM_STR);
$stm->bindParam(':tipo', $admintipo , PDO::PARAM_STR);
$stm->bindParam(':email', $adminemail , PDO::PARAM_STR);
$stm->bindParam(':fecha1', $fecha1 , PDO::PARAM_STR);
$stm->bindParam(':direccion', $admindireccion , PDO::PARAM_STR);
$stm->bindParam(':localidad', $adminlocalidad , PDO::PARAM_STR);
$stm->bindParam(':provincia', $adminprovincia , PDO::PARAM_STR);
$stm->bindParam(':pais', $adminpais , PDO::PARAM_STR);
$stm->bindParam(':telefono', $admintelefono , PDO::PARAM_INT);
$stm->bindParam(':telef', $admintelefono2 , PDO::PARAM_INT);
$stm->bindParam(':dni', $admindni , PDO::PARAM_STR);
$stm->bindParam(':cp', $admincp , PDO::PARAM_INT);
 
$stm->execute(); 
        echo 2; //"El registro se ha completado.";
         break;
}
 
 
}//fin del While
     }else{echo 3;} //fin comprobacion de las contraseñas 
 
 
 
 
}//fin comprobacion intput
else {
    echo 4;
}
 
$nuevoconex = null;
 
?>

De esta manera guarda el registro sin problemas el problema esta en el CASE false que creo que el query nada mas da TRUE, por que el
CASE TRUE si que funciona.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
if(isset($_POST['adminnombre'])&&!empty($_POST['adminnombre'])&&
  	 // isset($_POST['adminpass'])&&!empty($_POST['adminpass'])&& 
  	 // isset($_POST['adminpass2'])&&!empty($_POST['adminpass2'])&& 
  	  isset($_POST['admintipo'])&&!empty($_POST['admintipo'])&&
  	  isset($_POST['adminemail'])&&!empty($_POST['adminemail'])&&
  	  isset($_POST['admindireccion'])&&!empty($_POST['admindireccion'])&&
  	  isset($_POST['adminlocalidad'])&&!empty($_POST['adminlocalidad'])&&
  	  isset($_POST['adminprovincia'])&&!empty($_POST['adminprovincia'])&&
  	  isset($_POST['adminpais'])&&!empty($_POST['adminpais'])&&
  	  isset($_POST['admintelefono'])&&!empty($_POST['admintelefono'])&&
  	  isset($_POST['admintelefono2'])&&!empty($_POST['admintelefono2'])&&
  	  isset($_POST['admindni'])&&!empty($_POST['admindni'])&&
  	  isset($_POST['admincp'])&&!empty($_POST['admincp'])){
 
 
 
if ($adminpass == $adminpass2){
 
$sql = "INSERT INTO `admin-user`
(`admin-nombre`, `admin-pass`, `admin-tipo`, `admin-email`, 
`admin-fecha`, `admin-direccion`, `admin-localidad`, 
`admin-provincia`, `admin-pais`, `admin-telefono`, 
`admin-telefono2`, `admin-dni`, `admin-cp`)

VALUES (:nombre, :pass, :tipo, :email, :fecha1, :direccion, :localidad,
:provincia, :pais, :telefono, :telef, :dni, :cp )";
 
  $stm = $nuevoconex->prepare($sql);
 
if(isset($stm) && $stm !== FALSE){
$stm->bindParam(':nombre', $adminnombre , PDO::PARAM_STR);
$stm->bindParam(':pass', $passcrypt , PDO::PARAM_STR);
$stm->bindParam(':tipo', $admintipo , PDO::PARAM_STR);
$stm->bindParam(':email', $adminemail , PDO::PARAM_STR);
$stm->bindParam(':fecha1', $fecha1 , PDO::PARAM_STR);
$stm->bindParam(':direccion', $admindireccion , PDO::PARAM_STR);
$stm->bindParam(':localidad', $adminlocalidad , PDO::PARAM_STR);
$stm->bindParam(':provincia', $adminprovincia , PDO::PARAM_STR);
$stm->bindParam(':pais', $adminpais , PDO::PARAM_STR);
$stm->bindParam(':telefono', $admintelefono , PDO::PARAM_INT);
$stm->bindParam(':telef', $admintelefono2 , PDO::PARAM_INT);
$stm->bindParam(':dni', $admindni , PDO::PARAM_STR);
$stm->bindParam(':cp', $admincp , PDO::PARAM_INT);
 
$stm->execute();
 
echo 1;
 
     }else {
echo 2;}
 
 }else {
 
    echo 3;
 }
 
 
}
else {
 
    echo 5;
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No me guarda el registro y ya no se por que.

Publicado por Sergio (20 intervenciones) el 04/07/2017 22:37:44
SOLUCIONADO ERA EL WHILE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar