Jump to content
soaresra

Criando Menu intercambiando dados de 3 tabelas

Recommended Posts

Olá colegas, eu venho avançando a cada dia na programação em PHP mas eu travei em uma estrutura e queria a ajuda dos colegas mais experientes.

 

Eu tenho 3 tabelas:

Adm_Funcionarios_Usuarios - contem login e senha

# login,  senha
    jose,  1234

 

Sis_Setores: aonde tem os nomes dos módulos e os links dele. Ex. Administrativo, Financeiro, etc.

# linkNome          link

administrativo     administrativo.php

financeiro             financeiro.php

vendas                  vendas.php

 

Adm_Funcionarios_Usuarios_Acessos - contem login e módulos

# login,  autorizados
     jose,  administrativo, financeiro

 

Hoje eu só uso o menu carregando todas as opções

	$sql = "SELECT * FROM Sis_Setores WHERE linkNome = '$Sistema' AND situacao = 1;";

	$return = mysqli_query($conexao, $sql) or trigger_error(" Query falhou! SQL: $sql - Error: ".mysqli_error(), E_USER_ERROR);
	while($LinhaMenu = mysqli_fetch_assoc($return))
	{
		echo '<a href="'.$LinhaMenu["link"].'" target="_self">'.$LinhaMenu["linkNome"]."</a>";
	}

O que eu estou tentando fazer é: (levando em consideração que eu já tenha as informações do usuário logado)

 

1 - Verifica quem é a pessoa logada / Já tenho isso pronto

2 - Verifica se a pessoa logada existe na tabela Adm_Funcionarios_Usuarios_Acessos no campo login / Já tenho isso pronto

 

Não estou conseguindo fazer

 

3 - Verifica na tabela Adm_Funcionarios_Usuarios_Acessos o campo autorizados os módulos que serão carregados

4 - Percorre a array com os valores, exemplo: administrativo, vendas

5 - Se existe na array a palavra administrativo que também existe no campo linkNome da tabela Sis_Setores

6 - Carrega no menu apenas os links que existem dentro da array.

 

O que eu tentei fazer sem sucesso (coisas de café com leite):

 

$sql = "SELECT autorizados FROM  Adm_Funcionarios_Usuarios_Acessos WHERE iduser = 1;";
$return = mysqli_query($conexao, $sql) or die(mysqli_error($conexao));
  
  if(!$result = mysqli_fetch_array($return))
  {
    echo "Deu Ruim no SQL dos Acessos";
  }
  else
  {
    $autorizados = $result["autorizados"];
    //echo $autorizados;

    foreach($autorizados as $valor)
      {
        $sql = "SELECT * FROM Sis_Setores WHERE linkNome = '$autorizados' AND situacao = 1;";
        $return  = mysqli_query($conexao, $sql) or trigger_error(" Query falhou! SQL: $sql - Error: ".mysqli_error(), E_USER_ERROR);
        while($LinhaMenu = mysqli_fetch_assoc($LinksSubSistema))
        {
         echo '<a href="'.$LinhaMenu["link"].'" target="_self">'.$LinhaMenu["linkNome"]."</a>".$br;
        }     
      }
  }

O erro que dá é 

Warning: Invalid argument supplied for foreach() in testeArray.php on line 50 //Linha 50 -> foreach($autorizados as $valor)

 

Agradeço desde já aos colegas.

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By brendow
      Olá Pessoal!
      Como valores dentro de um loop foreach para gravar os valores selecionados, exemplo:
      $alunos = "1,2";
      $arr = [$alunos];
      foreach($arr as $dado => $value) {
      $list = explode(',', $value);
      PRECISO DE AJUDA AQUI e depois:
      mysqli_query($conn, "INSERT INTO tb_alunos (id) VALUES ('$???')");
      }
       
      E quando isso acontece?
      $alunos = "1"; OU $alunos = "";
       
      Desde já agradeço!
    • By ivansilvask83
      Pessoal preciso mostrar na tabela o valor de nome, email e cotas o problema é que não estou conseguindo mostrar a quantidade de cotas porque preciso de 2 variaveis foreach ou 2 foreach.
      segue o codígo:
      <tbody>                                 <?php                                 if(!empty($indicados_nivel)){                                     foreach($indicados_nivel as $indicado){                                         $indicadoInfo = $this->conta_model->InfoUser($indicado); foreach ($cotas as $cota) {                                     ?>                                     <tr>                                     <td width="200">                                          <?php echo $indicadoInfo->nome;?>                                     </td>                                     <td width="250">                                         <?php echo $indicadoInfo->email;?>                                     </td>                                     <td width="50">                                         <?php echo $cota->quantidade; ?> //Aqui Preciso Mostrar a Quantidade de cotas que cada usuario tem//                                     </td>                                 </tr>                                     <?php                                     }                                 }                                 ?> </tbody>  
    • By gabybarross
      Amigos, preciso da ajuda de vocês. 
      Meu site vende um serviço e gostaria de saber como faço após a compra desse serviço que seja automaticamente incluído um perfil para o usuário. Isso porque gostaria de fazer um menu em que apenas quem comprou o serviço consiga visualiza-lo. 
      OBrigada gabriela
    • By Carlos Web Soluções Web
      Olá....boa tarde !!

      Crei um menu multi-level simples em CSS:
       
      MENU_MOLDE

      , gostaria agora que, para:

      @media screen and (max-width: 900px)

      o menu se torne responsável, com ul li a {float: none; text-align: left; width: 100%} e ativar o submenu ao clicá-lo e desativar ao clica-lo novamente!!

      Alguém poderia me ajudar ??
      Desde já muito obrigado !!
    • By André Monjardim
      Estou com uma dúvida aqui e não estou conseguindo achar uma solução.
      Criei um sistema de sorteio onde corre e salva no banco uma sequências numeral de forma aleatória.
      No foreach eu determinei que deverá procurar 5 sequências entre 1 à 10 sem repetir... e caso ele ache no banco, já salvo anteriormente por outro apostador um nº repetido, ele deveria somar + 1 no final do laço e continuar a buscar outro numero até finalizar as 5 sequências. Só que quando ele soma + 1 ele não transfere essa soma para o forech, pois o laço inicia numa linha abaixo.
      No trecho abaixo eu simulei um número salvo no banco que seria o "00004" e no loop ele deverá pular esse nº.
      Será que consegui passar a minha dúvida?
      // GERAR NÚMEROS ALEATÓRIOS function getRandomNumbers($qnt, $min, $max, $repeat = false, $sort = true, $sort_order = 0){ if ((($max - $min) + 1) >= $qnt) { $numbers = array(); while (count($numbers) < $qnt) { $number = mt_rand($min, $max); if ($repeat) { $numbers[] = $number; } elseif (!in_array($number, $numbers)) { $numbers[] = $number; } } if($sort){ switch ($sort_order){ case 0: sort($numbers); break; case 1: rsort($numbers); break; } } return $numbers; } else { return 'A faixa de valores entre $min e $max deve ser igual ou superior à ' . 'quantidade de números requisitados'; }} // Após declará-la: foreach (getRandomNumbers(5, 1, 10, false, false) as $number){ $number = str_pad($number , 6 , '0' , STR_PAD_LEFT); // EXIBIR NA TELA DE TESTE OS NÚMEROS PARA SORTEIO echo " $number<br>"; // $sql = mysqli_query($con, "SELECT * FROM sorteios WHERE num_sorteados='$number'"); // while($array = mysqli_fetch_array($sql)){ // $num_sorteados = $array['num_sorteados']; // } // TESTE $num_sorteados = 000004; // if($num_sorteados == false or $num_sorteados != $number){ $query = "INSERT INTO sorteios (referencia, num_sorteados) VALUES ('$reference','$number')"; mysqli_query($con, $query) or die (" Erro ao inserir dados sorteados"); } else { $qtde_numeros = $qtde_numeros + 1; } }  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.