Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: ing_jp en 17 de Mayo 2016, 20:32
-
Buenas amigos soy nuevo en el tema de PHP... tengo un procedimiento almacenado hecho en MYSQL de esta manera...
CREATE PROCEDURE proc_Verificar_Usuario(
IN Loguin varchar(30),
IN Pass varchar(30),
OUT CodigoGenerado int)
begin
SET @CodigoGenerado = -1;
if(EXISTS (select 1 from tbl_Usuario where (Usuario = Loguin and Password = Pass))) THEN
select CodigoGenerado = ID_Usuario from tbl_Usuario where (Usuario = Loguin and Password = Pass);
end if;
end
NOTA: El procedimiento me corre correctamente
Como pueden observar hay tres paremateros donde dos parametros son IN y un parametro OUT ahora para ejecutar en php este procedimiento tengo esto...
<?php //Verificar Usuario
$login = $_POST['txtlogin'];//mandado del form login
$pass = $_POST['txtpass'];//mandado del form login
$Host = "localhost";
$User = "root";
$Password = "";
$BaseDatos = "mienlace";
//Creo la conexion
$Conexion = mysql_connect($Host, $User, $Password) or die("Fallo de Conexion");
mysql_select_db($BaseDatos, $Conexion) or die("Fallo al acceso de la base de datos");
$squery_call_sp = "CALL proc_Verificar_Usuario('$login', '$pass', @x);"; //llamada al procedimiento "proc_Verificar_Usuario"
$squery_select_sp = "SELECT @x;";
$result_Call_sp = mysql_query($squery_call_sp, $Conexion);
$Result_Select_sp = mysql_query($squery_select_sp, $Conexion);
if (mysql_fetch_assoc($result_Call_sp) > 0)//Result_Select_sp
{
header("location:FRM_Principal.php");//dirige al formulario registro
}
else
{
header("location:index.php");//vuelve al formulario loguearse
}
$mysqli->close();//cierro mi conexion
?>
yo quiero obtener ese valor en PHP, que me tiene que devolver el procedimiento y verificar si es mayor que 0 para que me envié al formulario registro.php, la forma que yo tengo no me dá, quiero que me ayuden hacer esto porfavor...
Los que me puedan ayudar me pueden contactar por whatsapp al +591 72164654 (Boliva) o por medio de mi email ing.floresljuanp@gmail.com
-
Hola!
Lo primero que tienes que comprobar es si obtienes los resultados correctos desde la base de datos o no.
El uso de header en php para direccionar a otra url suele dar problemas. El direccionamiento puede hacerse con JavaScript. Es posible que tengas ahí el problema. Prueba a mostrar un mensaje por pantalla como:
if (mysql_fetch_assoc($result_Call_sp) > 0)//Result_Select_sp
{
echo("Vamos a dirigirnos al formulario registro");//dirige al formulario registro
}
else
{
echo("Vamos a dirigirnos al formulario loguearse");//vuelve al formulario loguearse
}
¿Llegas al mensaje de envío al formulario de registro? Si no llegas es posible que tengas algún problema con la consulta a la base de datos.
Para gestionar este tipo de aplicaciones te resulta necesario PHP, JavaScript y Ajax. Mira los cursos en http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=57&Itemid=86
Saludos!
-
estimado amigo
esto... mysql_fetch_assoc() me manda un array no logro entender esta parte...
quiero que me aclare un poco me puede ayudar en esta parte por favor...
<?php //Verificar Usuario
$login = $_POST['txtlogin'];//mandado del form login
$pass = $_POST['txtpass'];//mandado del form login
$Host = "localhost";
$User = "root";
$Password = "";
$BaseDatos = "mienlace";
//Creo la conexion
$Conexion = mysql_connect($Host, $User, $Password) or die("Fallo de Conexion");
mysql_select_db($BaseDatos, $Conexion) or die("Fallo al acceso de la base de datos");
$squery_call_sp = "CALL proc_Verificar_Usuario('$login', '$pass', @x);";
$squery_select_sp = "SELECT @x;";
//llamada al procedimiento "proc_Verificar_Usuario"
$result_Call_sp = mysql_query($squery_call_sp, $Conexion);
$Result_Select_sp = mysql_query($squery_select_sp, $Conexion);
if (mysql_fetch_assoc($result_Call_sp) > 0)//Result_Select_sp
{
header("location:FRM_Principal.php");//dirige al formulario registro
}
else
{
header("location:index.php");//vuelve al formulario loguearse
}
$mysqli->close();//cierro mi conexion
?>
porque me bota un array yo lo que quiero es el valor que me tiene que devolver mi procedimiento almacenado, mi procedimiento almacenado corre perfectamente bien
DROP PROCEDURE IF EXISTS proc_Verificar_Usuario;
DELIMITER //
CREATE PROCEDURE proc_Verificar_Usuario(
IN _Usuario VARCHAR(30),
IN _Pass VARCHAR(30),
OUT _Result TINYINT)
begin
SET _Result = -1;
if (Exists(SELECT 1 FROM tbl_Usuario WHERE (Usuario = _Usuario and Password = _Pass))) THEN
SET _Result := (SELECT ID_Usuario FROM tbl_Usuario WHERE (Usuario = _Usuario AND Password = _Pass));
end if;
end//
DELIMITER ;
la cosa es que quiero hacer la llamda correspondiente al procedimiento donde tambien tenga el valor que me devuelve para hacer la comparacion...
<?php //Verificar Usuario
$login = $_POST['txtlogin'];//mandado del form login
$pass = $_POST['txtpass'];//mandado del form login
//me conecto al servidor y BD
$Hosting = "localhost";
$User = "root";
$Password = "";
$DataBase = "mienlace";
//Creo la conexion
$Conexion = mysql_connect($Hosting, $User, $Password) or die("Fallo de Conexion");
mysql_select_db($DataBase, $Conexion) or die("Fallo al acceso de la base de datos");
$Squery_call_sp = "CALL proc_Verificar_Usuario('$login', '$pass', @x);";
$Squery_select_sp = "SELECT @x;";
//llamada al procedimiento "proc_Verificar_Usuario"
$Result_Call_sp = mysql_query($Squery_call_sp, $Conexion);
$Result_Select_sp = mysql_query($Squery_select_sp, $Conexion);
IF ((mysql_fetch_assoc($Result_Select_sp)) > 0)
{
$sql1="SELECT ID_Cliente, CI, Nombre, Apellido, ID_Usuario FROM tbl_cliente WHERE ID_Usuario='$ID_USUARIOS'";
$result1=mysql_query($sql1);
$row1=mysql_fetch_array($result1);
print_r($row1);
$ID_USUARIOCLI=$row1['ID_Cliente'];
$count=mysql_num_rows($result1);
$sql1="SELECT ID_Cliente, CI, Nombre, Apellido, ID_Usuario FROM tbl_cliente WHERE ID_Usuario='$ID_USUARIOS'";
$result1=mysql_query($sql1);
$row1=mysql_fetch_array($result1);
print_r($row1);
$ID_USUARIOCLI=$row1['ID_Cliente'];
$count=mysql_num_rows($result1);
if($count>0)//Verifico si el usuario ya tiene sus datos personales registrados
{
header("location:FRM_Perfil.php");//dirige al formulario perfil
}
else
{
header("location:FRM_registrarCliente.php");//dirige al formulario registro
}
}
else
{
header("location:index.php);//vuelve al formulario loguearse
}
$mysqli->close();
?>