PHP - ejecutar varios procedimientos almacenados mysql en php

   
Vista:

ejecutar varios procedimientos almacenados mysql en php

Publicado por laura (2 intervenciones) el 15/12/2011 17:18:55
Hola, estoy tratando de ejecutar dos procedimientos almacenados (mysql) en php pero resulta que al ejecutar el primero no ejecuta el segundo, y si comento el primero, el segundo ejecuta correctamente.


Ambos procedimientos funcionan perfectamente, pero supongo que algo debe quedar guardado y hace que la segunda llamada no se efectue.

muestro el codigo:

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
99
100
101
102
103
104
105
106
107
108
109
<?
//RECIBO LOS PARAMETROS
$nombre = stripslashes($_POST['nombre']);
$apellido = stripslashes($_POST['apellido']);
$mail = stripslashes($_POST['mail']);
$pass = stripslashes($_POST['pass']);
 
//VARIABLES PARA SALIDA EN PANTALLA
$msj = "";
$img = "";
$error = 0;
 
//TRATAMIENTO DE LOS PARAMETROS
//eliminación de caracteres blancos y de nueva linea
$nombre = trim($nombre);
$apellido = trim($apellido);
$mail = chop($mail);
$pass = trim($pass);
 
//validación de cantidad de caracteres
if(strlen($nombre)>45){
    $msj = 'El nombre debe tener como máximo 20 caracteres';
    $img = 'incorrecto.png';
    $error = 1;
}
else if(strlen($nombre) <=0){
    $msj = 'Debe ingresar su nombre';
    $img = 'incorrecto.png';
    $error = 1;
}
 
else if(strlen($apellido)>45){
    $msj = 'El apellido debe tener como máximo 20 caracteres';
    $img = 'incorrecto.png';
    $error = 1;
}
else if (strlen($apellido) <=0){
    $msj = 'Debe ingresar su apellido';
    $img = 'incorrecto.png';
    $error = 1;
}
 
else if(strlen($mail)>150){
    $msj = 'El correo electrónico debe tener como máximo 150 caracteres';
    $img = 'incorrecto.png';
    $error = 1;
}
else if(strlen($mail) <=0){
    $msj = 'Debe ingresar su correo electrónico';
    $img = 'incorrecto.png';
    $error = 1;
}
 
else if(strlen($pass) <=0){
    $msj = 'Debe elegir una contraseña para su cuenta';
    $img = 'incorrecto.png';
    $error = 1;
}
else if(strlen($pass) < 4 || strlen($pass) > 16){
    $msj = 'La contraseña debe tener entre 4 y 16 caracteres';
    $img = 'incorrecto.png';
    $error = 1;
}
 
//validación de caracteres especiales en mail
else if(strpos($mail, "@") == false || strpos($mail, ".") == false)
{
    $msj = $mail .' no es valido como correo electrónico';
    $img = 'incorrecto.png';
    $error = 1;
}
 
else{ //SI TODO ESTA CORRECTO
    // conectamos con la base de datos
    require("../database/database.php");
    $conexion = mysqli_connect($host, $user , $passdb);
    if(!$conexion){
        echo "alert('No se pudo conectar con la base de datos');";
    }
    else {
        mysqli_select_db($conexion, $db);
    }
 
    //comprobamos que el mail no esté registrado
    $buscarmailquery = "call BUSCARMAIL('".$mail."');";
    $buscarmail = mysqli_query($conexion, $buscarmailquery);
 
    if($row = mysqli_fetch_assoc($buscarmail)){
            $retorno = $row['retorno'];
    }
 
    if ($retorno >0){ //si el mail ya esta registrado.
        $msj = $mail . ' ya está registrado.';
        $img = 'incorrecto.png';
        $error = 1;
    }
    else{ //si el mail está disponible
        //ejecutamos el procedimiento crearusuario
         $registroquery = "call CREARUSUARIO('".$nombre."', '".$apellido."', '".$mail."', '".$pass."');";
         $registro = mysqli_query( $conexion, $registroquery);
 
 
         $msj = 'Su cuenta ha sido creada correctamente.<br>Bienvenido!';
         $img = 'correcto.png';
         $error = 0;
     }
    mysqli_close($conexion);
}
?>


Espero que puedan ayudarme
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
Imágen de perfil de xve

ejecutar varios procedimientos almacenados mysql en php

Publicado por xve (5515 intervenciones) el 15/12/2011 20:39:05
Hola laura, no tendrías que tener mayor problema, lo único que se me ocurre, es que no entre dentro del else... has probado a ponerlos uno debajo del otro??

Coméntanos, ok?

Saludos
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

ejecutar varios procedimientos almacenados mysql en php

Publicado por laura (2 intervenciones) el 15/12/2011 21:43:17
tambien lo pense, pero sucede que si pongo un echo 'algo'; dentro del else, el echo se ejecuta normalmente.
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

ejecutar varios procedimientos almacenados mysql en php

Publicado por Caleb (1 intervención) el 01/01/2012 20:29:46
Sabes a mi me funcino pero tenia que cerrar y volver abrir la coneccion
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