Hola Martha,
Lo que ocurre es que el ejemplo que puse es un SP que retorna varias filas mediante un LOOP, en tu caso necesitas modificar ese SP para que sólo retorne 1 fila.
Según entiendo quedaría algo así
Código:
CREATE OR REPLACE FUNCTION getadministradorlogin(character varying) RETURNS RECORD AS
$BODY$
DECLARE
datos administrador%ROWTYPE;
BEGIN
SELECT INTO id_admin, login_adm, password_adm
FROM administrador
WHERE login_adm=$1;
IF FOUND THEN
RETURN datos;
END IF;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION getadministradorlogin(character varying) OWNER TO postgres;
Ahora, en la consulta para obtener los datos debes especificar las columnas, podria quedar así:
Código PHP:
$sql="select * from getadministradorlogin('".$login_admin."') AS (id_admin tipo_columna, login_adm tipo_columna, password_adm tipo_columna)";
Y lo demás es el mismo proceso, espero que te vaya bien
saludos