Ir para conteúdo

POWERED BY:

Arquivado

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

Preceptor

Reformulando Array em checks

Recommended Posts

Tenho numa tabela 15 registrosselect * from mercadoriafaco uma busca no bd e tenho o resultado. Onde o valor de cada check é o seu codigo- ► 9658; congelados- ► 9658; Frutas- ► 9658; Perfumaria- ► 9658; ....15 checkbox. Preciso emitir relatorios para alguns produto que sao selecionados dessa listamarco 3 checks e envio pra outra pagina pra emitir um novo resultadoselect * from mercadoria where codigo='$checks1,$check2,$check3' // mas isso aqui nao podeEntao o problema é:- Gerar checkbox dinamicamente, selecionar alguns //até aqui eu tenho certeza -enviar pra outra pagina- Realizar uma nova consulta a partir dos valores selecionadosAgora como fazer- Ja sei que os checks tem que ser array mas como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos andei pesquisando no forum...por uma ajuda..mas até agora tá brabo...Eu tenho o seguinte código:

<?$qi1 = "select * from obras order by obraID";$ri1 = mysql_query($qi1) or die(mysql_error());if(mysql_num_rows($ri1) > '0'){echo "<form action=comparar.php method=post name=comparar>";while($ai1 = mysql_fetch_array($ri1)){$link1="info.php?id=$ai1[obraID]&nome=$ai1[Nome]";    $nome = "<input name=[]obra type=checkbox value=$ai1[obraID]><a href=$link1>$ai1[Nome]</a>";    echo "$nome<br />";  }  echo "<br /><input name=comparar type=button value=comparar /></form>";}?>

Eu não sei se essa é a melhor maneira para eu fazer o que quero, que é algo no estilo do site do http://www.pontofrio.com.br/ lá se você em departamento escolher INFORMATICA-CAMERA DIGITAL, verá que aparecem as cameras com opção de um checkbox em que você pode marcar até 5 cameras e comparar o preço , as caracteristicas etc..das cameras.O meu problema lá no meu código que aponta para uma página comparar.php...é saber como eu faria essa página comparar.php (ou seja como eu faria a pesquisa no mysql por exemplo com 3 checkboxs selecionados e exibir o resultado dos 3 itens). Sei que teria que usar array , mas não tenho idéia de como fazer...Se alguém puder me dá um exemplo serei muito grato...Jura

Compartilhar este post


Link para o post
Compartilhar em outros sites

A forma mais simples de fazer isso é como disse o MUTANTE_POWER_B. Veja outro exemplo que uso: http://www.imasters.com.br/forum/index.php...ndpost&p=341577

 

:)

<{POST_SNAPBACK}>

Olá AAlves, valeu pela resposta, bem eu não sou expert em php, pois uso pouco, e não tenho muito conhecimento...

Você teria como me dar um exemplo de como ficaria meu select baseado na minha pergunta e como seria a saida (resultado), pois fiquei sem entender esse select do MUTANTE_POWER_B ( $sql = "select * from mercadoria where codigo IN (".implode(', ', $item).")" ;) ...

 

Se você puder me ajudar agradeço...

 

Jura

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você puder me ajudar agradeço...

<{POST_SNAPBACK}>

Vamos lá! Imagine esse form:

 

<input type="checkbox" name="acesso[]" value="1">Banda Larga<input type="checkbox" name="acesso[]" value="2">Acesso Discado<input type="checkbox" name="acesso[]" value="3">Hospedagem<input type="checkbox" name="acesso[]" value="4">Outros
Você tem 4 checkbox e terá que testar, no select, quais o usuário selecionou! Use isso:

 

$sql = "select * from Acesso where TipoAcesso IN (".implode(', ', $acesso).")";
Ao invés de você testar um por um, use o IN! Suponha agora que você tenha selecionado o primeiro e o terceiro check. Se você desse um echo, sua string sql ficaria assim:

 

$sql = "select * from Acesso where TipoAcesso IN (1,3)";
O IMPLODE separa os valores do array pondo vírgula, nesse exemplo. O SELECT IN serve para pegar mais de um valor, array mesmo. Se você colocar num LOOP, listará os dados do TipoAcesso = 1 e TipoAcesso = 3!

 

Se não ficou claro, retorne... ;)

<{POST_SNAPBACK}>

AALVES: esse é o meu código:

 

 

<?

 

$qi1 = "select * from obras order by obraID";

$ri1 = mysql_query($qi1) or die(mysql_error());

 

if(mysql_num_rows($ri1) > '0')

 

 

{

echo "<form action=comparar.php method=post name=comparar>";

while($ai1 = mysql_fetch_array($ri1))

{

 

$link1="info.php?id=$ai1[obraID]&nome=$ai1[Nome]";

 

    $nome = "<input name=obra[] type=checkbox value=$ai1[obraID]>

 

<a href=$link1>$ai1[Nome]</a>";

    echo "$nome<br />";

 

  }

  echo "<br />

<input name=comparar type=button value=comparar />

</form>";

}

 

 

?>

Seguindo suas dicas:

 

$sql = "select * from obras where obraID IN (".implode(', ', $obra).")";

$result = mysql_query($sql) or die(mysql_error());

como ficaria minha restante, por exemplo meu mysql_fetch_array , como faço para mostrar os produtos selecionados ??

 

Sei que parece ser simples...mas como não faço isso...tô meio perdido..

 

Aguardo sua ajuda...valeu mesmo...

 

Jura

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos eu to precisando da ajuda de vcs no código abaixo, que estou adaptando no código q o AAlves me ajudou...

<form action=comparar.php method=post name=comparar1>              <?  $sql = mysql_query("SELECT * FROM produtos p LEFT JOIN categorias c ON p.id_categoria=c.id_categoria WHERE p.status = 1 $sqla ORDER BY id_produto ASC LIMIT $inicio,$maximo");  while ($i < $produtos_por_pagina)    {  ?>              <td width="50%" align="center">        <table width="100%"  border="1" cellpadding="2" cellspacing="0" bordercolor="<? echo $CorLinha; ?>">                  <tr>                    <td><input name=produto[] type=checkbox value=<? echo @mysql_result($sql,$i,id_produto); ?>><?     if (@mysql_result($sql,$i,foto) != "") { echo "<img src=produtos/p_".@mysql_result($sql,$i,foto)." border=0 width=75 align=left>"; } ?>                        <b><? echo @mysql_result($sql,$i,produto); ?></b><br>                        <br>                        <b>Preço:</b> R$ <? echo @mysql_result($sql,$i,preco); ?><br>                        <p align="right">              <form action="carrinho.php" method="post" name="frmcarrinho">                          <input type="hidden" name="Form_Produto[<? echo @mysql_result($sql,$i,id_produto);?>][PRODUTO]"  value="<? echo @mysql_result($sql,$i,produto); ?>">                          <input type="hidden" name="Form_Produto[<? echo @mysql_result($sql,$i,id_produto);?>][PRECO]"  value="<? echo @mysql_result($sql,$i,preco); ?>">                          <input type="hidden" name="Form_Produto[<? echo @mysql_result($sql,$i,id_produto);?>][QTDE]"  value="1">                      <a href="detalhes.php?id=<? echo @mysql_result($sql,$i,id_produto); ?>"><img src="imagens/detalhes.gif" width="83" height="18" border="0"></a>              </form>                        <p></p></td>                  </tr>      </table></td>              <?    $i++;    if ($i%2 == 0) echo "</tr>";    }  ?>                 <input name=comparar type=submit value=comparar>                  </form>

O que tá acontecendo no código acima é que o botão comparar não executa...comparar.php

<?$colunas="3"; //quantidade de colunas$cont="1"; //contadorprint"<table>";$produto = $_POST[produto];$sql = "select * from produtos where id_produto IN (".implode(', ', $produto).") limit 3";$result = mysql_query($sql) or die(mysql_error());while($ai1 = mysql_fetch_array($result)){//se o cont for igual a 1 ele começa a linha da tabelaif($cont==1){print"<tr>";}print"<td>";echo $ai1 ["produto"] . " - " . $ai1["disponibilidade"]."<br>";print"</td>";//se o cont for igual o número de colunas ele fecha a linha da tabelaif($cont==$colunas){print"</tr>";$cont=0;}$cont=$cont+1; //acrescenta valor ao cont}//se o valor final de cont for diferente do numero de colunas ele fechará a a linha e a tabelaif(!$cont==$colunas){print"</tr></table>";} else {print "</table>";}

Jura

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos eu to precisando da ajuda de vcs no código abaixo, que estou adaptando no código q o AAlves me ajudou...

<{POST_SNAPBACK}>

Os checkboxes estão sendo criados com os [] ? Exiba o código fonte para se certificar! Você disse que clica no SUBMIT e nada acontece ?

<{POST_SNAPBACK}>

Isso mesmo AAlves....mas no código se eu retirar o form do carrinho veja abaixo o código colorido, aí funciona, mas só que eu preciso do código com o form do carrinho, :( como resolver isso ????

 

<form action=comparar.php method=post name=comparar1>

              <?

  $sql = mysql_query("SELECT * FROM produtos p LEFT JOIN categorias c ON p.id_categoria=c.id_categoria WHERE p.status = 1 $sqla ORDER BY id_produto ASC LIMIT $inicio,$maximo");

  while ($i < $produtos_por_pagina)

    {

  ?>

              <td width="50%" align="center">

   

    <table width="100%"  border="1" cellpadding="2" cellspacing="0" bordercolor="<? echo $CorLinha; ?>">

                  <tr>

                    <td><input name=produto[] type=checkbox value=<? echo @mysql_result($sql,$i,id_produto); ?>><?

    if (@mysql_result($sql,$i,foto) != "") { echo "<img src=produtos/p_".@mysql_result($sql,$i,foto)." border=0 width=75 align=left>"; } ?>

                        <b><? echo @mysql_result($sql,$i,produto); ?></b><br>

                        <br>

                        <b>Preço:</b> R$ <? echo @mysql_result($sql,$i,preco); ?><br>

                        <p align="right">

             

PHP

[*]<form action="carrinho.php" method="post" name="frmcarrinho"><br /> <input type="hidden" name="Form_Produto[<? echo @mysql_result($sql,$i,id_produto);?>][PRODUTO]" value="<? echo @mysql_result($sql,$i,produto); ?>"><br /> <input type="hidden" name="Form_Produto[<? echo @mysql_result($sql,$i,id_produto);?>][PRECO]" value="<? echo @mysql_result($sql,$i,preco); ?>"><br /> <input type="hidden" name="Form_Produto[<? echo @mysql_result($sql,$i,id_produto);?>][QTDE]" value="1"><br /> <a href="detalhes.php?id=<? echo @mysql_result($sql,$i,id_produto); ?>"><img src="imagens/detalhes.gif" width="83" height="18" border="0"></a><br /> </form>

                        <p></p></td>

                  </tr>

      </table></td>

              <?

    $i++;

    if ($i%2 == 0) echo "</tr>";

    }

  ?>

                <input name=comparar type=submit value=comparar> 

                </form>

 

 

 

 

Eu dei uma olhada no sitehttp://www.shoptime.com.br/ e dei uma analisada no codigo fonte e nessa área eles usam para comparar um form via get com javascript...mas não entendi muito bem...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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