Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

eiwes

Pegar GET repetido, fazer foreach com SELECT

Recommended Posts

Boa noite, pessoal

 

Gostaria de saber como faço para pegar gets repetidos na url, exemplo:    pagina?a=1&b=2&a=2&a=5

 

Preciso pegar todos os valores de a, complicar e exibir no SELECT. Como?

 

Assim:

 

    

esse -> valores de a

SELECT * FROM table WHERE esse = 1 AND esse = 2 AND esse = 3 AND esse = 5;

 

Alguém tem algum raciocínio pra isso?

 

Obrigado a todos pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, eduardojc disse:

Dá uma olhada aqui acho que é isso que você precisa: 

 

Infelizmente não, Eduardo. Passar GETs infinitos pela URL é coisa simples url?get1=a&get2=b&get3=c....

 

Minha dúvida é: MESMOS PARÂMETROS REPETIDOS DIVERSAS VEZES e resgatar esses valores.

Exemplificando: url?get=1&get=2&get=3

 

Repare que são parâmetros de mesmo nome, porém com valores diferentes.

 

Nesse caso, gostaria de transformar os valores do "get" em uma array.

 

$values = [1, 2 , 3 ...];

 

Problema: não sei qual função existe para captar valores de parâmetros repetidos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@eives

Exemplificando: url?get=1&get=2&get=3

Passe os parâmetros assim:

url?numero[]=1&numero[]=2&numero[]=3

e recupere assim:

$numeros=$_GET['numero'];

Resultado:
 

$numeros[0] = 1
$numeros[1] = 2
$numeros[2] = 3

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 minutos atrás, Maujor disse:

@eives

Exemplificando: url?get=1&get=2&get=3

Passe os parâmetros assim:


url?numero[]=1&numero[]=2&numero[]=3

e recupere assim:


$numeros=$_GET['numero'];

Resultado:
 


$numeros[0] = 1
$numeros[1] = 2
$numeros[2] = 3

 

 

TOP, Majour!!!!

 

Exatamente isso!!!!! 

 

Complementando... Para quem quiser verificar, basta:

if(is_array($numero)){
	echo "É array";
}else{
	echo "Não é array";
}

Além disso, no meu caso, que eu irei usar em uma consulta SQL. Basta utilizar a clasula WHERE colum in ('1', '2' ,'3')

Aí a pergunta: como fazer para resultar em uma string? Pois array não é lido na consulta SQL.

 

Simples:

 

 gere um implode 

$novo = "'".implode("',", $numero)."'";

//Resultado

 '1', '2', '3'

 

 

Fera demais! Agradecimentos absurdos, Majour

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por FabianoSouza
      Eu preciso exibir duas informações em minha consulta:
      1) A quantidade de pessoas inscritas numa turma de treinamento (isso é feito com um simples COUNT)
      2) Uma flag de excesso de inscrições na turma. Seria obtido pela comparação entre a quantidade máxima permitida (já existe esse campo) e o COUNT feito acima.
       
      Até aqui sem problemas.
       
      O que quero é evitar fazer duas contagens (1 para saber a quantidade de inscritos, e outra para gerar a flag de excesso de inscrições).
       
      Há uma forma de utilizar UMA contagem para atender as duas necessidades?
       
      Meu código está assim:
       
      ... --AQUI FAZ A COMPARAÇÃO PARA GERAR A FLAG DE EXCESSO DE INSCRIÇÕES , CASE WHEN (SELECT COUNT(*) FROM dbo.tab AS ITT WHERE ITT.codTurmaDeTreina = T.id) > T.lotacaoMax Then T.nome + '&nbsp;'+'<span class=%22icon-aviso fcolor-critico%22 style=%22font-size:18px%22 title=Excesso&nbsp;de&nbsp;inscrições></span>' --AQUI FAZ A CONTAGEM DE INSCRIÇÕES , (SELECT COUNT(*) FROM dbo.tab AS ITT WHERE ITT.codTurmaDeTreina = T.id) AS 'Inscrições'  
    • Por clovis.sardinha
      Tenho uma consulta de autocomplete no bd que funciona no servidor local e não roda no servidor da web. 
      Ao enviar a consulta no servidor local  aparece no console :Fetch terminou o carregamento: GET ".../Cidade?cidade=sao%20paulo". A pesquisa é feita normalmente.
      Quando mando a mesma pesquisa para o servidor web(locaweb) aparece no console: Fetch terminou o carregamento: GET "..../Cidade?cidade=sao%2520paul".
      O número 25 aparece só no servidor web. Pelo que pesquisei 25 significa %, ou seja, está duplicando o caractere %. 
      Não consegui utilizar nenhuma função para evitar que isto ocorra. Alguém sabe se há alguma configuração no servidor web que possa ser alterada para evitar essa duplicação?
       
    • Por FabianoSouza
      Possuo uma coluna de data.
      Eu gostaria que os registros com datas futuras aparecessem no topo do meu select, em relação aos demais registros.
      Em seguida, gostaria que somente esses registros com datas futuras ficassem em ordem crescente.
      Algo como 
       
      João  | 16/11/2023
      Maria | 17/11/2023
      José  |  20/11/2023
       
      -----------------------------
      (demais registros da base)
      Antônio   |  20/05/2023
      Rosa        | 15/08/2023
      Cida         | 15/10/2022
      Pedro      |  20/05/2021
      Paulo      |  14/11/2020
       
      O select seria esse.
      select dbo.formataData(ET.dataInicial) AS 'data' FROM dbo.tab AS ET GROUP BY ET.dataInicial  
    • Por Willian Simione
      Boa Noite, alguem poderia me ajudar em uma situação, estou tetnando gravar os dados da tela abaixo, porem nao estou conseguindo montar o jeito certo pra ele gravar todos os dados de uma vez

    • Por Giovanird
      Tenho uma tabela com a coluna média (valor decimal) .
       
      cod | media | cod_sala 1 1,98 5 2 2,34 2 3 1,32 5 4 2,51 3 5 1,65 1 6 2,78 5 7 4,95 4 8 0,75 4 9 1,23 1 10 1,63 2 11 1,55 3 Preciso no select MYSQL ou dentro do foreach multiplicar os valores do campo média, de acordo com o fitro por cod_sala
      Exemplo pelo cod_sala: 5
      Sendo o resultdo final: 1,98 * 1,32 * 2,78 = 7,26

      Desde já agradeço!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.