webruno 0 Denunciar post Postado Maio 29, 2006 E ai galera, beleza?Na minha url tenho os seguintes valores:index.php?cidades3=Sao Paulo&cidades5=Florianopolis&cidades9=Curitiba...Ou seja, as cidades são escolhidas pelo usuario por checkbox de um formulario que tem nomes de "cidades[0]", "cidades[1]", "cidades[2]"... o que está entre colchetes é definido por um loop.Depois de enviado o formulário através do GET, eu preciso recuperar os valores que estão em "cidades[?]".Como eu faço para recuperar esses valores que eu não sei o final?Tipo: $variavel = <comando> ($_GET[cidades]);Aí, $variavel[0] = "Sao Paulo"$varivel[1] = "Florianopolis"$variavel[2] = "Curitiba"Não sei se deu pra entender, mas agradeço a ajuda desde já! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Maio 29, 2006 foreach ($_GET as $campo => $valor) { $$campo = $valor; } Compartilhar este post Link para o post Compartilhar em outros sites
webruno 0 Denunciar post Postado Maio 29, 2006 Obrigado Fabyo, pode me explicar mais uma coisa?foreach ($_GET as $campo => $valor) { $$campo = $valor; }$query = mysql_query ("SELECT clientes.id, clientes.nome, clientes.sobrenome, clientes.cpf, login.cidade FROM clientes INNER JOIN login ON clientes.codigo = login.codigo WHERE login.cidade IN ('". implode("', '", $array_cidades) ."') ");Nesse caso eu substituo o $array_cidades por $campo? E se tiver outras coisas na URL tipoindex.php?cidades3=Sao Paulo&ok=BuscarPois ele envia todos os campo pra URL, sendo assim a busca no BD vai dar erro porque o SQL ia buscar o "OK" também.Valeu pela ajuda! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Maio 29, 2006 $campo = cidade[] $valor = "São Paulo" entendeu? sobre outros botoes ou campos que você nao quer só você fazer um if antes e filtrar Compartilhar este post Link para o post Compartilhar em outros sites
webruno 0 Denunciar post Postado Maio 29, 2006 Humm, não sei se entendi muito bem...foreach ($_GET as $campo => $valor) { $$campo = $valor; }if ( $campo == cidades[] ) { array ($teste) = $valor; }Tá acusando parse error na linha 8 que é a do foreach. O filtro ficou certo?Valeu! Compartilhar este post Link para o post Compartilhar em outros sites
webruno 0 Denunciar post Postado Maio 29, 2006 Rresolvido dessa maneira:o filtro para selecionar os campos que eu queri: foreach ($_GET as $campo => $valor) { if ( $campo[0] == "c" ) { $$campo = $valor; $array_cidades[] .= $$campo; } }o SQL:$query = mysql_query ("SELECT clientes.id, clientes.nome, clientes.sobrenome, clientes.cpf, login.cidade FROM clientes INNER JOIN login ON clientes.codigo = login.codigo WHERE login.cidade IN ('". implode("', '", $array_cidades) ."') ");Obrigado pela ajuda Fabyo. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Maio 29, 2006 só que desse jeito ta errado porque você ta pesquisando por um campo que começa com a letra c dai calhou de você acertar porque você procura por cidades, mas nao esta correto fazer assim $campo[0] = "c" cidade você pegou a primeira letra do campo Compartilhar este post Link para o post Compartilhar em outros sites
webruno 0 Denunciar post Postado Maio 29, 2006 Sim to ligado Fabyo, mas é que o que eu preciso é recuperar as valores da "cidades1", "cidades2"... sendo assim, eu só defini o valor inicial independente do nº do final.O problema que eu tava tendo é que eu não sabia as cidades que o usuario marcou no checkbox, então eu não poderia criar um laço com o FOR acrescentando o nº no fim de "cidades[$i]" porque eu não teria um parâmetro pra fazer ele parar. Porque teria muitas possibilidades de combinação.Tipo, uma hora poderia ser:index.php?cidades8=Porto AlegreOutra hora poderia ser:index.php?cidades25=Belo Horizonte&ok=BuscarEntão com o for ele iria verificar nº por nº até uma quantidade definida por mim.Bom, estou programando a pouco tempo em php, talvez eu esteja pensando errado.Como deveria ficar este código?Obrigado pelo help até aqui. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Maio 30, 2006 entao como falei do jeito que você esta fazendo ta gambiarra porque você ta pesquisando por algo que pode ser falho, pode ser que nesse seu formulario de certo, mas amnha ou depois você acrescente campos e por sorte você ter campos com nomes que começam com c seu script ira falhar Compartilhar este post Link para o post Compartilhar em outros sites
webruno 0 Denunciar post Postado Maio 30, 2006 Aham, entendi.. O que você sugere pra que fique certo? Como eu falei, se for usado loop com FOR o processamento vai verificar coisa que não precisa.Qual a melhor maneira? Valeu Fabyo. Compartilhar este post Link para o post Compartilhar em outros sites