Ir para conteúdo
Fórum Script Brasil
  • 0

Arrays preciso de ajuda!


Jota Miler

Pergunta

Ola gente to com um problemão tenho aki um script que eu fiz em array, e não sei como fuinciona muito bem, fui fazendo a base de erros e acertos, mais ainda não entendo a logica, bem mais primeiro...

tenho um formulario que busca alguns dados do db e adicionei um checkbox com o nome de refere[]

que seria a referencia do produto,

outro com o valor e nome e etc segue o formulario abaixo:

<form name="form1" method="post" action="index1.php?pg=pedido&acao=incluir">
<?
for($i=0; $i<=$tr; $i++)
{

$linha = mysql_fetch_array($consulta)
?>

<table width="95%" align="center" cellpadding="0" cellspacing="0" bgcolor="#<?echo (($i%2)?"FFFFFF":"7FB2E5");?>" class=cenb>
  <tr bgcolor="#<? echo (($i%2)?"FFFFFF":"7FB2E5"); ?>"> 
    <td width="151" align="center" valign="middle" class=topa><br>
      <a href="../fotos/produtos/<? echo $linha['imagem'];?>" rel="gb_imageset[nice_pics]"><img src="../fotos/produtos/<? echo $linha['imagem'];?>" width="120" border="0" title="<?php echo $linha['titulo_pct']; ?> - Clique para AMPLIAR"></a><br>
    </td>
    <td width="589" colspan="2" align="center" class=topa><table width="100%" align="left" cellpadding="0" cellspacing="0">
          <tr bgcolor="#<? echo (($i%2)?"FFFFFF":"7FB2E5"); ?>" class="cenb"> 
            <td width="192" height="26" align="center" class=topa> <div align="right"> <font color="#CC0000" size="2" face="Arial, Helvetica, sans-serif">Código 
                ::</font></div></td>
            <td width="289" align="left" valign="baseline" class=topa><div align="left"></div>
               <strong><font color="#000000" size="1" face="Arial, Helvetica, sans-serif"><?php echo $linha['ref']; ?></font></strong> 
            </td>
            <td colspan="2" align="right" valign="baseline" class=topa> <div align="center">
                <input type="checkbox" name="refere[]" value="<?php echo $linha['ref'] ?>">
              </div></td>
          </tr>
          <tr bgcolor="#<?echo (($i%2)?"FFFFFF":"7FB2E5");?>" class="cenb"> 
            <td align="right" valign="top" class=topa><font color="#CC0000" size="2" face="Arial, Helvetica, sans-serif">Nome 
              do Produto::</font></td>
            <td align="left" valign="top" class=topa_tit><strong><font color="#000000" size="1" face="Arial, Helvetica, sans-serif"> 
               <?php echo $linha['titulo_pct']; ?></font></strong></td>
            <td width="50" align="left" valign="baseline" class=topa_tit><div align="right"><font color="#FF6600" size="3">Qtd::</font></div></td>
            <td width="60" align="left" valign="top" class=topa_tit><input name="quant[]" type="text" size="5" value="1" class=""></td>
          </tr>
          <tr bgcolor="#<?echo (($i%2)?"FFFFFF":"7FB2E5");?>" class="cenb"> 
            <td align="right" valign="top" class=topa><font color="#CC0000" size="2" face="Arial, Helvetica, sans-serif">Descrição 
              do produto::</font></td>
            <td colspan="3" rowspan="2" align="left" valign="top" class=topa_tit><strong><font color="#000000" size="1" face="Arial, Helvetica, sans-serif"> 
               <?php echo $linha['descricao']; ?></font></strong></td>
          </tr>
          <tr bgcolor="#<?echo (($i%2)?"FFFFFF":"7FB2E5");?>" class="cenb"> 
            <td align="right" valign="top" class=topa><input type="hidden" name="nome[]" value="<?php echo $linha['titulo_pct'] ?>"> 
              <input type="hidden" name="valor[]" value="<?php echo $linha['valor_pct']?>"></td>
          </tr>
          <tr bgcolor="#<?echo (($i%2)?"FFFFFF":"7FB2E5");?>" class="cenb">
            <td align="right" valign="top" class=topa><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif">Valor::</font></td>
            <td colspan="3" align="left" valign="top" class=topa_tit><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif"><strong>R$: 
              </strong></font><strong><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><?php echo $linha['valor_pct']; ?></font></strong></td>
          </tr>
        </table></td>
  </tr>
  <tr> 
      <td class=topa colspan="3" align="center"> </td>
  </tr>
  <tr> 
    <td colspan="3" align="center" class=topa>
 </td>
  </tr>
</table>
      
<?
}}
?>
  <table width="100" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <td><div align="center">
          <input type="submit" name="Submit" value="Adicionar">
        </div></td>
    </tr>
  </table>
  <p> </p></form>
bem ... esses dados do formulario são recebidos com este script abaixo que faz o seguinte: pega os produtos que você ticou no checkbox juntamente coma quantidade que você quer e adiciona em um banco de dados, com os seguintes parametros, se o produto já estiver no banco de dados com a id do usuario ele adiciona a nova quantidade. se não estiver ainda no db ele adiciona mais um item. segue o codigo abaixo:
<?
require_once "conexao.php";
if($acao=='incluir')
{

        if($refere=="")
        {
        echo "&lt;script>window.alert(\"Nenhum produto foi selecionado!\");</script>";
        echo "&lt;script>window.location='java script:history.back(1)'</script>";
        }
        else
        {

    for ($indice=0;$indice<count($refere);$indice++)
    {
        $refe=$refere[$indice];
        echo "$refe -- ".$quant[$indice]." <br>";
        if($refere=="")
        {
        echo "&lt;script>window.alert(\"Nenhum produto foi selecionado!\");</script>";
        echo "&lt;script>window.location='java script:history.back(1)'</script>";
        }
        
        $a=ereg_replace(",",".",$valor[$indice]);
        $b=$quant[$indice];
  
        $soma=$a*$b;
        $Vtot=$soma;
        $Vunit=$valor[$indice];
        $produto=$nome[$indice];
        $qtd=$quant[$indice];

        $teste = "Select count(*) as soma from carrinho WHERE id_repres='$idrepre' and ref='$refe'" or trigger_error('Erro linha 224 = ' . mysql_error());
        $teste2 = mysql_query($teste);
        $comp = mysql_result($teste2,0,"soma"); //verifica o produto já existe na tabela carrinho

            if($comp==0) //se não existir, insere um novo produto
                {
                      $sql="INSERT INTO carrinho VALUES ('','$idrepre','$refe','$qtd','$produto','$Vunit','$Vtot')" or trigger_error('Erro linha 229 = ' . mysql_error());
                      $ss=mysql_query($sql);
                }
            else
                {
                      $consulta_ref="SELECT * FROM carrinho WHERE id_repres='$idrepre' and ref='$refe'" or die (mysql_error());
                    $result_ref=mysql_query($consulta_ref) or die (mysql_error());
                    $reg_ref=mysql_fetch_array($result_ref) or die (mysql_error());
                    $qtd_ref=$reg_ref['qtd'];
                    $val_ref=$reg_ref['Vtot'];
                    $quantia=($qtd_ref+$qtd);
                    $valor_total=($val_ref+$soma);
                    $vtotal=$valor_total;
                    $tabela="UPDATE carrinho SET qtd='$quantia' , Vtot='$vtotal' WHERE id_repres='$idrepre' and ref='$refe'" or die (mysql_error());
                    $qry_tabela=mysql_query($tabela) or die (mysql_error());

                }

    }
            if($ss!==0)
                {
                     echo "&lt;script>window.alert(\"Produtos adicionados com sucesso\");</script>";
                }

                  
}}
?>

bem o meu problema é o seguinte se eu ticar o primeiro produto da lista ... beleza

se eu ticar o 1º,2º,3º beleza, mais se eu pular a ordem e não ticar o 1º e ticar o 2º ou mesmo quaquer outro ele pega a quantidade do primeiro da lista (que seria value=1) mesmo sem eu ter ticado.

se eu selecionar mais de um item por ex:

seleciono o 2º e o 4º

no 2º ele pega os valores do primeiro sem que eu tenha ticado

e o 4º ele vai normal.

sei la o que ta acontcendo alguém pode me ajudar se precisarem ver o script inteiro eu mostro ele funcionando.

há outra coisa estou tentando acompanhar meus tópicos por email mais não chega nada pra mim

bem mais isso é de menos, preciso de ajuda urgente!!

Editado por Jota Miler
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

se alguém não esta intendendo nada do que eu expliquei, entre em http://provisorio.avarebc.com/testes/fiorella

entre com

login: repres

senha:senha

e va em produtos e depois tente criar um pedido deletando produto inserindo de novo, etc. primeiramente tente colocar os 3 primeiros produtos que já estão com preço, ai tente deletar e colocar novamente, etc.

ATENÇÃO: testem somente com o 3 primeiros produtos porque são os unicos que estão com preço, se colocarem os outros não vai adiantar nada, por causa que estão sem os valores de preço.

vai la galera me ajudem por favor

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...