• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

thinkbrunus

Percorrer query e guardar valores

2 mensagens neste tópico

Viva!

Estou a tentar aperfeiçoar o sistema autenticação já desenvolvido, e nesta fase pretendo que quando um utilizador se autentique sejam guardados os valores referentes aos níveis de permissão. Para começar utilizei a seguinte query:

$query = "SELECT nome,password,id_nivelacesso
FROM detalhe,nivelacesso_detalhe 
WHERE nome='" . $username . "' AND password='" . $password . "' 
AND nivelacesso_detalhe.id_detalhe=detalhe.id_detalhe";
$sql = mysql_query($query) or die('Query failed: ' . mysql_error());

E de seguida optei por saber quantas linhas foram retornadas, e num if optar por um procedimento se tiver mais que 1 tipo de permissões, caso contrário efectua o procedimento norma:

$numfields = mysql_num_rows($sql);
while ($result = mysql_fetch_object($sql)) {
if ($result->nome == true){
	session_start();
	if ($numfields > 1)	{
		$teste = array($numfields);
		for($i=0;i<$numfields;$i++){
			$teste[$i] = $result -> id_nivelacesso;
		}
	/*
		$niveis_acesso = array($numfields);
		while ($result = mysql_fetch_array($sql)){
		        for($i=0;$i<$numfields;$i++){
		            $teste[$i] = $result->id_nivelacesso;
		        }
		}
	*/		
	$_SESSION['username'] = $result -> nome;
	$_SESSION['dominio'] = false;
	$_SESSION['session_time'] = time();
	$_SESSION['teste'] = $teste;
	session_write_close();
	echo $_SESSION['username'];
} else {
	$_SESSION['username'] = $result -> nome;
	$_SESSION['dominio'] = false;
	$_SESSION['session_time'] = time();
	$_SESSION['nivel_acesso'] = $result -> id_nivelacesso;
	session_write_close();
	echo $_SESSION['username'];
}
} else {
echo "0";
}
}

} else {
	echo "0";
}

A minha dificuldade está em perceber como vou percorrer o os valores da query e armazenar numa variável os valores das permissões, para que futuramente possa utilizar de forma a permitir o acesso a determinas áreas do site.

Agradeço uma ajudinha para clarificar o meu raciocínio.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Julgo já ter conseguido, coloquei assim:

while ($result = mysql_fetch_object($sql)) {
            if ($result->nome == true){
                session_start();                
                if ($numfields > 1)    {
                    $teste = array();
                    for($i=-1; $i <= $numfields; $i++){
                        $teste[$i] = mysql_result($sql,$i,"id_nivelacesso");
                    }

                    $_SESSION['username'] = $result -> nome;
                    $_SESSION['dominio'] = false;
                    $_SESSION['session_time'] = time();
                    $_SESSION['teste'] = $teste;
                    session_write_close();
                    echo $_SESSION['username'];

} else {
...
...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora