Jump to content
Marcones Borges

Filtrar Variável em um select

Recommended Posts

Olá, bom dia, estou tendo dificuldade em uma filtragem, quando passo o parâmetro para o select em forma de variável ele não exibe resultados.

 

Segue o código:


        $usuario='gerente';
        function montaSelect()
        {
        $sql = "SELECT * FROM membros WHERE user='".$usuario."' ";
                $query = mysql_query( $sql );

                if( mysql_num_rows( $query ) > 0 )
                {
                        while( $dados = mysql_fetch_assoc( $query ) )
                        {
                                $opt .= '<option value="'.$dados['nome'].'">'.$dados['nome'].'</option>';
                        }
                }
                else
                        $opt = '<option value="0">Nenhum Membro cadastrado</option>';

                return $opt;
        }



Quando substituo a variável pelo nome usuário gerente, ele lista normal, mais na variável não da certo.

já tentei user='{$usuario}'  , user='$usuario' , user=$usuario}, nenhuma forma funciona...

Alguém pode me ajudar..

 

Share this post


Link to post
Share on other sites

Boa tarde, eu declarei a variável, ela é local, deveria funcionar quando passo o valor para ela.

Quando dou pint_r ou echo nela funciona, agora dentro do select não funciona.

Share this post


Link to post
Share on other sites

Testei e funcionou aqui..

 

e é o mesmo código do pelo William Bruno

 

Neste caso ai no código remover os espaços que contem nos

( )

 

Segue o código do William 

 

<?php
	$con = mysql_connect('localhost', 'root', '123');
	mysql_select_db('test', $con);

	/**
	 * função que retorna o select
	 */
	function montaSelect()
	{
		$sql = "SELECT `idCliente`, `nome` FROM `cliente` ";
		$query = mysql_query( $sql );

		if(mysql_num_rows($query) > 0 )
		{
			while($dados = mysql_fetch_assoc($query) )
			{
				$opt .= '<option value="'.$dados['idCliente'].'">'.$dados['nome'].'</option>';
			}
		}
		else
			$opt = '<option value="0">Nenhum cliente cadastrado</option>';

		return $opt;
	}

	/**
	 * função que devolve em formato JSON os dados do cliente
	 */
	function retorna($id)
	{
		$id = (int)$id;

		$sql = "SELECT `idCliente`, `nome`, `telefone`, `endereco`
			FROM `cliente` WHERE `idCliente` = {$id} ";
		$query = mysql_query($sql);


		$arr = Array();
		if(mysql_num_rows($query) )
		{
			while($dados = mysql_fetch_object($query) )
			{
				$arr['endereco'] = $dados->endereco;
				$arr['telefone'] = $dados->telefone;
			}
		}
		else
			$arr[] = 'endereco: não encontrado';

		return json_encode($arr);
	}

/* só se for enviado o parâmetro, que devolve o combo */
if( isset($_GET['idCliente']))
{
	echo retorna($_GET['idCliente']);
}

  Na dúvida só seguir o jeito que ele mostra LINK

 

Ou tente usar desta maneira

<?php
    function Selected($query, $value = null){
        if ($query == $value) { echo "selected"; }
    }
	
	//Ou então usar desta outra formato
/*	function selected( $value, $selected ){
    return $value==$selected ? ' selected="selected"' : '';
} */
	?>
								
<select class="form-control" name="id_membros">
	<?php $sql = "SELECT * FROM membros WHERE user='".$usuario."' AND id > 0"; $query = mysql_query($sql); 
		while($dados = mysql_fetch_assoc($query)) { ?>
<?php if (empty($dados['nome'])) { ?>
	<option value="0">Nenhum Membro cadastrado</option>
<?php }else{?>
	<option value="<?php echo $dados['id']; ?>" <?php Selected($dados['id_membros'],$dados['id']); ?>><?php echo $dados['nome']; ?></option>
	<?php } /* IF*/?>
<?php } ?>
</select>

 

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 aw10home
      Quando faço a consulta no phpMyadmim consigo o resultado esperado. Mas pelo visto não estou sabendo fazer direito em PHP. O que estou errando? Porque não consigo fazer a média (prtm) "aparecer"?
      abaixo meu código.
      <?php if (isset($_GET['$id_aluno'])){ $id_aluno = addslashes($_GET['$id_aluno']);} elseif (isset($_GET['id_aluno'])){ $id_aluno = addslashes($_GET['id_aluno']);}//addslashes evita sqlinjection else{ $id_aluno=(""); } $informacao=$con->prepare("SELECT a.id_aluno, a.nome, SUM(((b.prt*5)+(m.prt*3)+(v.prt*2))/10 ) as prtm FROM aluno a inner join avb1 b on a.id_aluno = b.id_aluno inner join avm2 m on a.id_aluno = m.id_aluno inner join avp v on a.id_aluno = v.id_aluno group by a.id_aluno, a.nome WHERE a.id_aluno = $id_usuario"); $informacao->execute(); ?> <!------------> <table class="cBolt"> <tr> <td>Avaliação</td> <td>Bim.</td> <td>Português</td> </tr> <?php while($linha=$informacao->fetch(PDO::FETCH_ASSOC)){ ?> <tr> <td>Média</td> <td>1º</td> <td><?php echo $linha['prtm'];?></td> </tr> <?php } ?> </table>  
    • By Rizer
      Galera, estamos buscando um profissional para atuar como Desenvolvedor PHP Junior/Pleno na Rizer. Está interessado?
       
      Empresa: Rizer (www.rizer.com.br)
      Vaga: Desenvolvedor PHP Pleno
      Carga horária: 40h semanais (seg a --- / 9h-18h)
      Local de trabalho: Edf. Cosmopolitan, Paralela - Salvador/BA
       
      Buscamos um profissional que não tenha potencial somente para exercer com excelência a posição de Desenvolvedor PHP, mas também para - num futuro próximo - liderar times na sua área de expertise. Para tornar isso possível, iremos imergi-lo no mercado e no mundo de empresas de tecnologia e startups, apresentando ainda mais sobre o funcionamento de empresas como a nossa (não tão tradicionais assim) e sobre as metodologias que utilizamos para atingir nossos resultados.
       
      A Rizer cresce exponencialmente a cada dia e gostamos de fazer todos crescerem junto conosco. Por isso, além de uma excelente política de reconhecimento e promoção (algumas vezes meteórica) de funcionários, possuímos também um programa de Vesting para oferecer quotas da sociedade da empresa para membros do nosso time que se destacam.
       
      Pré-requisitos:
      Conhecimento sólido em PHP (2+ anos de experiência);
      Integração via APIs rest;
      Framework Laravel;
      Banco de dados relacional (mysql);
      Utilização de metodologias ágeis (Scrum);
      Git / gitflow.
      Phpunit;
      Boas práticas e design pattern;;
      CSS, HTML e JavaScript
       
      Interessados deverão preencher o seguinte formulário:
       
      http://bit.ly/rizer1
       
      e fazer o upload do currículo com nome “Desenvolvedor PHP Pleno - SEU NOME”
      Você se considera uma excelente pessoa e um ótimo profissional? Curtiu a vaga? Então vem trabalhar com a gente, vem!
    • By danilo759
      Tenho uma tabelinha de programas para uma rádio... está da seguinte forma.

      titulo
      data (YYYY-MM-DD)
      hora (00:00:00)

      Minha consulta, mas não retorna o programa da hora corrente. O que eu fiz de errado?
      SELECT * FROM programas WHERE data = CURDATE() AND hora = CURTIME() LIMIT 1
    • By Ro_JnR
      Estou tentando a semanas resolver um problema, consumir uma API e verificar se o campo no banco está vazio, se estiver faz insert se não faz update.
      Até aí tudo bem, agora não consigo passar do meu select para o banco, ele da erro.
       
      Segue o código:
       
      <?php

          require_once("db.class.php");
          
          $url = "https://servicodados.ibge.gov.br/api/v1/localidades/distritos";
              $ch = curl_init($url);
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
              curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
              $resultado = json_decode(curl_exec($ch));
              foreach ($resultado as $cidades) {
                  $nome = $cidades->nome;
                  $stmt = $conn->prepare("SELECT name FROM cidades WHERE name=?");
                  $stmt->bind_Param(':name', $nome);
                  $stmt->execute();
                  $stmt->bind_result($resultSelect);
                  $stmt->fetch();
                  if(!$stmt->execute()){
                      print_r($stmt->errorInfo());
                  }
              } 

      ?>
       
      Código do banco:
       
      $conn = new PDO("mysql:host=localhost;dbname=exercicio", "root", "");
      //"sqlsrv:Database=dbphp7;server=localhost\SQLEXPRESS;ConnectionPooling=0", "sa", "root");
      $stmt = $conn->prepare("SELECT * FROM cidades ORDER BY nome");
      $stmt->execute();
      //fetchALL basicamente faço while do mysqli
      $results = $stmt->fetchALL(PDO::FETCH_ASSOC);
       
      Print do erro:

       
      Tenho um outro exercicio que fiz bem parecido, consumi a API de estados e inseri no banco de dados, esse funcionou normalmente.
      Alguém poderia me dar uma luz, não sei mais o que fazer.
      Era para ser simples rsrsrrs.
    • By osmarindy
      Boa noite Pessoal.
      Estou com o seguinte problema. Tenho duas tabelas principais "tblProjeto" e "tblItensProjeto", tenho que selecionar o projeto (tblProjeto) cujo o item 19 (tblItensProjeto) já esteja concluído (status 5) e que o item 15 (tblItensProjeto) não esteja concluído (status 5) e nem cancelado (status 4).
      Tenho o seguinte código:
      SELECT p.nmProjeto, l.nmLocalidade, f.usuario, r.nmRequisitante, p.dtSolicitacao,p.dtPrevisaoEntrega, s.nmStatus FROM tblProjeto as p inner join tblItensProjeto as i on i.idProjeto = p.idProjeto inner join tblLocalidade as l on l.idLocalidade = p.idLocalidade inner join tblFuncionario as f on f.idFuncionario = p.idFuncionario inner join tblRequisitante as r on r.idRequisitante = p.idRequisitante inner join tblStatusProj as s on s.idStatus = i.idStatus where (i.idAtividade = 19 and i.idStatus= 5 ) and (i.idAtividade = 15 and (i.idStatus <> 5 and i.idStatus <> 4))
      Se executo um  filtro de cada vez (where i.idAtividade = 19 and i.idStatus= 5 ) ou (i.idAtividade = 15 and (i.idStatus <> 5 and i.idStatus <> 4)) eles trazem resultados, mas quando deixo os dois filtros não funciona.
      Possuo 5 projetos que estão com a atividade 19 concluída e atividade 15 pendente. mas, não consigo com esse select trazer a informação. Alguém sabe como posso resolver?
×

Important Information

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