Lo coloque tal como ustedes me sugirieron, pero asi no me ejecuta el SP:
Código:
CREATE OR REPLACE FUNCTION getadministradorlogin(character varying)
RETURNS SETOF administrador AS
$BODY$
DECLARE
datos administrador%ROWTYPE;
BEGIN
FOR datos IN
select id_admin, login_adm, password_adm
from administrador
where login_adm=$1
LOOP
RETURN NEXT datos;
END LOOP;
RETURN;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION getadministradorlogin(character varying) OWNER TO postgres;
En cambio como lo tenia anteriormente si mando a imprimir
pg_num_rows($rs)me devuelve 1 fila pero mi problema es que no me imprime los datos. Este es mi codigo de php:
Código:
// query
$sql="select * from getadministradorlogin('".$login_admin."')";
// conexion a la BD
$con=parent::open();
// se ejecuta el query
$rs=parent::rs($con, $sql);
// verifico en bd
if (pg_num_rows($rs)<=0){
echo '<br>No existen usuarios';
// el usuario no existe
$row=array();
$row['error']='loginNO';
} else {
$row=array();
while ( $row = pg_fetch_assoc($rs) ) {
echo $row['id_admin'].'-'.$row['login_adm'].'-'.$row['password_adm'].'<br>';
}
if ($row['password_adm']!=$password){
// password incorrecto
$row['error']='passwordNO';
} else {
session_start();
$_SESSION[$varGenPLogAdmin]=$login_admin;
$_SESSION[$varGenPIdAdmin]=$row['id_admin'];
$row['error']='OK';
}
}
// se cierra la conexion a la BD
parent::close($con);
return $row;
Gracias por la ayuda