• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

skin

[Resolvido] Receber múltiplos dados e fazer procura na base de dados

7 mensagens neste tópico

Boas,

bem o que eu pretendo fazer é receber isto:

<input type="checkbox" name="list" value="1">Beja<br />
<input type="checkbox" name="list" value="2">Évora<br />
<input type="checkbox" name="list" value="3">Santarém<br />
<input type="checkbox" name="list" value="4">Castelo Branco<br />
<input type="checkbox" name="list" value="5">Bragança<br />
<input type="checkbox" name="list" value="6">Portalegre<br />
<input type="checkbox" name="list" value="7">Guarda<br />
<input type="checkbox" name="list" value="8">Setúbal<br />
<input type="checkbox" name="list" value="9">Viseu<br />
<input type="checkbox" name="list" value="10">Faro<br />
<input type="checkbox" name="list" value="11">Vila Real<br />
<input type="checkbox" name="list" value="12">Coimbra<br />
<input type="checkbox" name="list" value="13">Leiria<br />
<input type="checkbox" name="list" value="14">Aveiro<br />
<input type="checkbox" name="list" value="15">Lisboa<br />
<input type="checkbox" name="list" value="16">Braga<br />
<input type="checkbox" name="list" value="17">Porto<br />
<input type="checkbox" name="list" value="18">Viana do Castelo<br />
<br>                                                    
<input type="button" value="Todos" onClick="this.value=check(this.form.list)"> 

Os valores disso ai em cima e fazer pesquisa do tipo:

$consulta = mysql_query("SELECT email FROM `utilizadores` where regiões = '$região') or die(mysql_error());

Provavelmente confuso...mas alguém consegue ajudar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas o que é que não tas a conseguir fazer?

PS: o codigo tem que ser:

$consulta = mysql_query("SELECT email FROM `utilizadores` where regiões = '$regiao'") or die(mysql_error());

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Imagina que eu tenho três regiões seleccionadas e quero que ele procure nas três assim não dá :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<input type="checkbox" name="list[]" value="1">Beja<br />
<input type="checkbox" name="list[]" value="2">Évora<br />
<input type="checkbox" name="list[]" value="3">Santarém<br />
<input type="checkbox" name="list[]" value="4">Castelo Branco<br />
<input type="checkbox" name="list[]" value="5">Bragança<br />
<input type="checkbox" name="list[]" value="6">Portalegre<br />
<input type="checkbox" name="list[]" value="7">Guarda<br />
<input type="checkbox" name="list[]" value="8">Setúbal<br />
<input type="checkbox" name="list[]" value="9">Viseu<br />
<input type="checkbox" name="list[]" value="10">Faro<br />
<input type="checkbox" name="list[]" value="11">Vila Real<br />
<input type="checkbox" name="list[]" value="12">Coimbra<br />
<input type="checkbox" name="list[]" value="13">Leiria<br />
<input type="checkbox" name="list[]" value="14">Aveiro<br />
<input type="checkbox" name="list[]" value="15">Lisboa<br />
<input type="checkbox" name="list[]" value="16">Braga<br />
<input type="checkbox" name="list[]" value="17">Porto<br />
<input type="checkbox" name="list[]" value="18">Viana do Castelo<br />
<br>                                                    
<input type="button" value="Todos" onClick="this.value=check(this.form.list)">

Com isto, o teu $_POST['list'] vai ser uma array. var_dump() it (var_dump($_POST['list']);) :)

Na parte da query, podes fazer qq coisa do género:

$dummy="";
foreach($_POST['list'] as $regiao) $dummy .= "regiões = '$regiao' OR ";
$dummy = str_replace(" OR \t", "", $dummy."\t");

$consulta = mysql_query("SELECT email FROM `utilizadores` where $dummy") or die(mysql_error());

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Imagina que eu tenho três regiões seleccionadas e quero que ele procure nas três assim não dá :\

Usa o operador IN: select * from tabela where campo IN (val1, val2, val3);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Imagina que eu tenho três regiões seleccionadas e quero que ele procure nas três assim não dá :\

Usa o operador IN: select * from tabela where campo IN (val1, val2, val3);

Então:


$consulta = mysql_query("SELECT email FROM `utilizadores` where região IN (".implode(', ', $_POST['list']).")") or die(mysql_error());

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

utilizei o primeiro exemplo que deste djthyrax ;)

Obrigado. Assunto Resolvido

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora