Jump to content
ndias

array no select?

Recommended Posts

alguém conhece um jeito de no select percorrer valores separados por vírgula em um campo?

 

por ex: tenho um campo em uma tabela com os valores SB, BA

 

qro selecionar todos que contenham S e A

 

se eu usar o in ('S','A'), o resultado vai ser

S

A

 

ou seja, só vai trazer o valor que conter só S ou só A

 

e se eu usar o like '%S%' or like ''%A%, o resultado pode também ser

SB

BA

 

quero que traga, por exemplo:

S

SB

BA

A

 

Ou seja, se tiver o S e também outros valores no campo junto com o S

Share this post


Link to post
Share on other sites

Olá

 

Fiz algo parecido, só que com PHP e Javascript;

 

Vê se serve para você alguma coisa:

 

 

Segue código em Javascript

document.getElementById("btn-addCell").addEventListener('click', function() {
			
			
			
		/* Produto da Tabela */
		var selectProduto = document.createElement('select');
		selectProduto.className = 'updateFields select';
		selectProduto.setAttribute('name', 'nomeProduto[]');
			
			
		var tdSelectionOptionProduto = document.createElement('td');
		tdSelectionOptionProduto.appendChild(selectProduto);
 
  		/* Para colocar o Select no Body, dentro de uma tr (table) */
  		var tr = document.createElement('tr');
		tr.appendChild(tdSelectionOptionProduto);
  		document.getElementById("body-table").appendChild(tr);
		updateFields();
  
  
  		/* Para pegar os dados do MySQL/Array no seu caso */
  		var dados = [<?
			
			$i = 1;
			$sql7 = "SELECT * FROM produto ORDER BY nomeProduto ASC";
			$qr7 = mysqli_query($con, $sql7) or die(mysqli_error());
			$number = mysqli_num_rows($qr);
			while($ln7 = mysqli_fetch_assoc($qr7)){
				
			if($i < $number){
				echo '"'.$ln7['nomeProduto'].'", ';
			} else{
				echo '"'.$ln7['nomeProduto'].'"';
			}
				
				$i++;
			}
			?>];
			
		dados.forEach(function(item){
			$('.select').append('<option>' + item + '</option>');
			});
	});	
  		
  	
}

 

Vê se consegue implementar, qualquer coisa é só falar

Share this post


Link to post
Share on other sites

Se você usar o LIKE '%A%' OR LIKE '%S%' certamente irá listar S, SB, BA e A, pois todos estes registros contém 'A' ou 'S'.

 

Agora vem a dúvida: você afirmou que na tabela possui os valores 'SB' e 'BA'. Como quer que seja listado 'S' e 'A' se não contém na sua tabela? E caso você esteja considerando a possibilidade de haver também os valores 'S' e 'A', então os quatro resultados serão retornados na sua pesquisa no exemplo acima.

Share this post


Link to post
Share on other sites

Anthony, obrigado! Eu consigo resolver com dois arrays no PHP, mas quero uma solução no SQL para ganhar performance.

 

Eziquiel, esse foi só um exemplo que usei. Na tabela contém: só S, só A, só SB, só BA, S e A, S e SB, S e BA, SB e A...etc, etc, etc....

 

Enfim...todas as combinações possíveis...pode existir tudo  S, SB, BA e A

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 Augusto Developer
      Olá, eu gostaria de uma ajuda, a qual eu não estou conseguindo repetir o laço do PHP para o meu script atual.
       
      Bom, eu tenho u script que gera 25 números aleatórios para assim, gerar o jogo desejado e também eu tenho um campo(input) que é minha $qtd['qtd_cartela']; a qual essa é responsável por gerar a quantidade de números desejados.
       
      Bom, o que eu preciso é quando alguém escolher mais de 1 jogo(cartela), irão gerar 25 números, aleatórios, pois não estou conseguindo gerar mais de um jogo, e mostrar isso através de um foreach ou outro laços do php.
       
      Enfim, quando eu coloco mais de 1 valor, para gerar a combinação, eu  dou um var_dump na minha variável $qtd eu consigo ver que esta mostrando a quantidade desejada, mais nao consigo fazer isso aparecer após escolher o valor desejado.
       
      Resumindo, eu preciso colocar um valor que eu quiser, e mostrar varios números apos submeter meu fomulário.
       
      Obrigado e aguardo ajuda.
       
       
      Meu script:
       
       <?php                 $bingo = filter_input_array(INPUT_POST, FILTER_DEFAULT);                 if(isset($bingo['gerar'])){                     unset($bingo['gerar']);                       if(!empty($bingo['qtd_cartela'] == '')){                         dialog('<b>Ops... preencha o campo cartela!</b>', 'warning');                     }elseif($bingo['qtd_cartela'] == 0 ){                         dialog('<b>Ops... preencha com um valor válido!</b>', 'warning');                     }else{                           $totalNumber = 25;                         $total = '';                          $qtd = $bingo['qtd_cartela'];                                                  for($i = 0; $i < $totalNumber; $i++){                             $numberGenerator = rand(1, 90);                             $total .= $numberGenerator;                         }
                              var_dump($total);                                              //dialog('Sucesso...', 'success');                        }                   }                   ?>                   <form action="" enctype="multipart/form-data" method="post">                     <div class="row">                         <div class="col-md-3">                             <div class="form-group">                                 <label class="form-control-label">NOME DO CONCURSO</label>                                 <input type="text" class="form-control is-invalid" placeholder="" disabled>                             </div>                         </div>                           <div class="col-md-3">                             <div class="form-group">                                 <label class="form-control-label">DATA DO PRÓXIMO CONCURSO</label>                                 <input type="text" class="form-control is-invalid" placeholder="" disabled>                             </div>                         </div>                           <div class="col-md-3">                             <div class="form-group">                                 <label class="form-control-label">PRÊMIO DO CURSO</label>                                 <input type="text" class="form-control is-invalid" placeholder="" disabled>                             </div>                         </div>                           <div class="col-md-3">                             <div class="form-group">                                 <label class="form-control-label">QUANTIDADE DE JOGO</label>                                 <input type="text" name="qtd_cartela" class="form-control" placeholder="Escolha a quantidades de cartelas">                             </div>                         </div>                           <div class="col-md-12 text-right">                             <input type="submit" class="btn btn-success btn-sm" name="gerar" value="Gerar Cartela">                         </div>                     </div>                 </form>  
    • By rjlfurtado
      Segue abaixo o exemplo de como seria feito em SQL:
      CREATE TABLE tabela ( campo1 DOUBLE, campo2 DOUBLE, divisao DOUBLE AS (campo1/campo2) ); Agora eu preciso criar uma migração no Laravel 6, segue exemplo abaixo:
      $table->integer('qtd_saida'); $table->decimal('valor_uni', 8, 2); $table->double('valor_total')->as(qtd_saida * valor_uni);  
    • By Maccio
      Estou tentando criar um relatório com total de horas trabalhadas do funcionários por dia, tenho uma tabela FRQ_digitacao onde eu tenho os dados para calcular o total de horas e se tiver com zero horas eu digo a ocorrência do mesmo, ex: falta, Folga, etc. Quero também colocar a informação de férias quando o mesmo estiver de férias, porém quando ele está de férias a tabela FRQ_digitacao fica sem registros nos dias de Férias, assim tenho que buscar a informação na tabela FLP_Ferias onde é lá que diz o gozoinicial e gozofinal, porém não estou conseguindo fazer essa comparação já que na tabela FRQ_digitacao nesses dias de ferias o funcionário fica sem registro.
       
      select T.CODINTFUNC, f.CHAPAFUNC, LISTAGG( CASE WHEN T.NORMALDIGIT=0 THEN OC.DESCMAPAOCORR WHEN t.DTDIGIT IS NULL THEN 'dt.dtdigit' --when dt.dtdigit between fe.inicio and fe.fim --then 'FER' ELSE to_char((TRUNC(T.NORMALDIGIT)+TRUNC(t.extradigit)+TRUNC(t.extranotdigit))+ ((trunc(((T.NORMALDIGIT-trunc(T.NORMALDIGIT))+(t.extradigit-trunc(t.extradigit))+(t.extranotdigit-trunc(t.extranotdigit)))/0.60))+ mod(((T.NORMALDIGIT - trunc(T.NORMALDIGIT))+(t.extradigit - trunc(t.extradigit))+(t.extranotdigit - trunc(t.extranotdigit))),0.60)),'FM99999D90', 'nls_numeric_characters=''.,''' ) END, ' ') within group (order by t.dtdigit) horas, MAX(FE.INICIO), MAX(FE.FIM ) from vw_funcionarios f, FRQ_DIGITACAOMOVIMENTO O, FRQ_OCORRENCIA OC, frq_digitacao t, (select f.codintfunc INT, f.chapafunc, max(fe.dtcompetfer)COMPET, MAX(fe.gozoinifer) INICIO, MAX(fe.Gozofinfer) FIM from flp_ferias fe, flp_funcionarios f where f.codintfunc=fe.codintfunc AND F.SITUACAOFUNC='A' and f.codigoempresa=1 AND FE.STATUSFERIAS='N' group by f.chapafunc, f.codintfunc) FE, (select t.DTDIGIT from frq_digitacao t WHERE t.dtdigit between '01-NOV-2019' AND '20-NOV-2019' group by t.dtdigit) DT where DT.DTDIGIT(+)=T.dtdigit and fe.INT=t.codintfunc and f.codintfunc=t.codintfunc AND F.CODIGOEMPRESA=1 and O.CODINTFUNC=T.CODINTFUNC AND T.DTDIGIT=O.DTDIGIT AND O.CODOCORR=OC.CODOCORR AND dt.dtdigit BETWEEN '01-NOV-2019' AND '20-NOV-2019' -- AND F.CODDEPTO BETWEEN 15 AND 15 AND O.STATUSDIGIT='N' and o.iddigit = (select max(p.iddigit) from frq_digitacaomovimento p where o.codintfunc=p.codintfunc and o.dtdigit=p.dtdigit AND P.STATUSDIGIT='N' and p.dtdigit between '01-NOV-2019' AND '20-NOV-2019') group by f.CHAPAFUNC, T.CODINTFUNC  



    • By agodiniz
      Fala galera, estou com um problema e não sei como resolver. Até encontrei umas respostas, mas utilizando Php e Mysql. Preciso que a resposta seja utilizando as tecnologias javascript (node) e Mysql.
      Gostaria de capturar dados de um formulário utilizando array e salvando o mesmo num banco de dados.
       
      Ex:
      Imagine um 3 inputs do tipo text que recebem um valor que é inserido pelo cliente e que cada input, possa receber valores diferentes (como se cada um fosse uma variável 'titulo', 'conteudo' e 'autor')
      quero que depois que o cliente enviar os dados que por ele foram inputados, esses dados sejam enviados para as variáveis 'titulo', 'conteudo' e 'autor'.
      Logo depois quero declarar um array que receba essas variáveis [titulo, conteudo, autor] e desejo armazenar o array no banco de dados utilizando Mysql
       
      Desde já, agradeço!
    • By malkarater
      boa tarde a todos,
       
      eu tenho uma consulta e nela preciso criar uma critica onde me traga endereço de clientes do tipo entrega.
      obs: o campo endereco é o onde está cadastrado os dois endereço
       
      o ranque usei para que pegue apenas a ultima compra do cliente.
       
      poderiam me ajudar?
       
      abaixo segue meu codigo:

       
       
×

Important Information

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