Jump to content


nandotrade

Member Since 03/05/2004
Offline Last Active 11/12/2007, 22:49
*****

Topics I've Started

Adicionar O Mesmo Item No Carrinho Com Cor Diferente

10/05/2007, 22:41

Peguei um exemplo de carrinho para montar pedidos de uma representada.
No modelo que busquei cada item selecionado do banco de dados é montado num form com os campos necessários ao carrinho...
Inicialmente serviria perfeitamente para as características dos produtos, mas agora entrará um produto que terá a varíável COR.
Sendo assim, agora posso ter a seguinte situação:

CODIGO = 1
QTD = 2
DESCRICAO = BALDE
PREÇO = 10,00
IPI = 0,05
COR = BRANCO

CODIGO = 1
QTD = 10
DESCRICAO = BALDE
PREÇO = 8,00
IPI = 0,05
COR = VERDE

Só que no form, onde é informado o produto, foto, preço etc, a cor é um campo SELECT com diversas cores, para não ter de criar uma combinação de cores que pode vir a fazer adicionar 200 itens no banco de dados.

A necessidade é criar o carrinho com sessão, onde o cliente tem apenas o código do primeiro produto, depois seleciona a cor desejada, e manda pro carrinho. De lá do carrinho e clica em retornar para a lista de produtos, seleciona novamente o mesmo produto, informa a quantidade e a nova cor.

Ex.?:
<input type="hidden" name="txtprod[<? echo $indice;?>][CODIGO]" value="<? echo $prim_cod; ?>">
<input type="hidden" name="txtprod[<? echo $indice;?>][QTD]" value="<? echo $prim_qtd; ?>">
<input type="hidden" name="txtprod[<? echo $indice;?>][DESCRICAO]" value="<? echo $prim_desc; ?>">
<input type="hidden" name="txtprod[<? echo $indice;?>][PRECO]" value="<? echo $prim_preco; ?>">
<input type="hidden" name="txtprod[<? echo $indice;?>][IPI]" value="<? echo $prim_ipi; ?>">
<input type="hidden" name="txtprod[<? echo $indice;?>][COR]" value="<? echo $prim_cor; ?>">
(OBS: este último campo é um select da cor OK.)

Ao clicar em submit, todos os produtos desta lista são enviados para o script carrinho:

//********* SCRIPT CARRINHO ***********************
include ("../config.php");
//INICIALIZA A SESSÃO
session_start();
//VERIFICA SE TEM PRODUTO NO CARRINHO PARA PUXAR
if(count($_SESSION[cesta]) > 0) {
//PEGA A CHAVE DO ARRAY
$chave = array_keys($_SESSION[cesta]);
//PEGA OS DADOS DA SESSÃO
for($i=0; $i<sizeof($chave); $i++) {
//ÍNDICE
$indice = $chave[$i];
//ATRIBUI
$cesta[$indice][CODIGO] = $_SESSION[cesta][$indice][CODIGO];
$cesta[$indice][IPI ] = $_SESSION[cesta][$indice][IPI];
$cesta[$indice][DESCRICAO]= $_SESSION[cesta][$indice][DESCRICAO];
$cesta[$indice][PRECO] = $_SESSION[cesta][$indice][PRECO];
$cesta[$indice][QTDE] = $_SESSION[cesta][$indice][QTDE];
$cesta[$indice][COR] = $_SESSION[cesta][$indice][COR];

}//FECHA FOR
}//FECHA IF
//VERIFICA SE A OPÇÃO ATUALIZAR FOI SELECIONADA
if($_POST[opc_atualizar]) {
$v_atualiza = $_POST[a_prod]; //RECEBE OS PRODUTOS CHECADOS PARA ATUALIZAÇÃO
$chave = array_keys($v_atualiza); //PEGA A CHAVE DO ARRAY
//EXIBE
for($i=0; $i<sizeof($chave); $i++) {
$indice = $chave[$i]; //PEGA O INDICE DO PRODUTO
$_SESSION[cesta][$indice][QTDE] = $v_atualiza[$indice][QTDE]; //ALTERA A QUANTIDADE DO PRODUTO SELECIONADO
}//FECHA FOR
}//FECHA IF

//VERIFICA SE A OPÇÃO EXCLUIR FOI SELECIONADA
elseif($_POST[opc_excluir]) {
$excluir = $_POST[check]; //RECEBE OS PRODUTOS CHECADOS PARA EXCLUSÃO
//EXIBE
for($i=0; $i<sizeof($excluir); $i++) {
$indice = $excluir[$i]; //PEGA O INDICE DO PRODUTO
unset($_SESSION[cesta][$indice]); //DESTRÓI A VARIÁVEL ESPECIFICADA
}//FECHA FOR
}//FECHA IF

//RECEBE O PEDIDO DO USUÁRIO
elseif($_POST[opc_efetivar]) {
$v_prod = $_POST[txtprod]; //RECEBE AS VARIÁVEIS
$chave = array_keys($v_prod); //PEGA A CHAVE DO ARRAY
//EXIBE
for($i=0; $i<sizeof($chave); $i++) {
$indice = $chave[$i];
if(!empty($v_prod[$indice][QTDE])) {
//GRAVA NO ARRAY CESTA
$cesta[$indice][CODIGO] = $v_prod[$indice][CODIGO];
$cesta[$indice][IPI] = $v_prod[$indice][IPI];
$cesta[$indice][DESCRICAO]= $v_prod[$indice][DESCRICAO];
$cesta[$indice][PRECO] = $v_prod[$indice][PRECO];
$cesta[$indice][QTDE] = $v_prod[$indice][QTDE];
$cesta[$indice][COR] = $v_prod[$indice][COR];
}//FECHA IF
}//FECHA FOR
//GRAVA NA SESSÃO
$_SESSION[cesta] = $cesta;
}//FECHA ELSE

Como faço para quando o usuário voltar na página de seleção de produtos, selecionar o mesmo (ÍNDICE) apenas mudando a quantidade e a cor do produto, e adicioná-lo na sessão com outra númeração maior de indice ou diferente das já utilizadas?

Exibindo Os Dados Do Select Em Colunas Com Form

27/03/2007, 21:41

Faço um select no MySQL, listos o resultado, mas a exibição é no FORM pois preciso alterar alguns valores em determinados nomes.
Como pegar somente as linhas alteradas e fazer o UPDATE dessas linhas na tabela do MYSQL.
Ex:
...
$query = "SELECT * FROM tabela1;";
...
<form name="formatoplanilha" method="POST">
<? do {
if ($numlinhas_resultado > 0) {
?>
<input type="text" name="item" value="<? echo $linha['item']; ?>">
<input type="text" name="valor" value="<? echo number_format($linha['pedprod_valor'],2,',','.'); ?>">
<? }
} while ($row_Tab_Tipo1 = mysql_fetch_assoc($resultado)); ?>
<input type="submit" name="Salvar">
</form>

Após o submit preciso pegar apenas as linhas alteradas e fazer o UPDATE.

Ler Linhas De Arquivo Txt

18/01/2007, 16:59

Tenho uma série de arquivos TXT que pretendo ler e gravar em banco de dados MySql.

O formato é mais ou menos este:

*11 "asadfasdf" "sdf" 123 "cidade" "asdfsadfasdf" ....
"76 "asdfasd asdf ads" "asdfds" 234 "adsf asdfa sdfasdf asdfas df" .....

Fiz o código abaixo, que abre o arquivo e faz uma primeira separação pelo *.
Em seguida lê a linha e faz a quebra pelas aspas, onde pegarei apenas os valore que devem ir para o banco. Só que o código só faz a quebra na primeira linha.

$handle = fopen ("repre.txt", "r");
$i2="0";
while (!feof ($handle)) {
$buffer = fgets($handle, 4096);
$mostra1 = explode("*",$buffer);
while($i2 < count($mostra1)){
list($campo1[$i2],$campo2[$i2],$campo3[$i2],$campo4[$i2],$campo5[$i2],$campo6[$i2],$campo7[$i2],$campo8[$i2],$campo9[$i2],$campo10[$i2],$campo11[$i2],$campo12[$i2],$campo13[$i2],$campo14[$i2],$campo15[$i2],$campo16[$i2])= explode("\"",$mostra1[$i2]);
$conteudo = "INSERT INTO (`rep_codrepr` , `rep_status` , `rep_nome` , `rep_endereco` , `rep_cidade` , `rep_telefone` , `rep_fax` , `rep_cgc` , `rep_contato` , `rep_insc_est` , `rep_obs` `rep_cep` ) VALUES ('";
$conteudo .= trim($campo1[$i2])."' , '";
$conteudo .= "1' , '";
$conteudo .= trim($campo2[$i2])."' , '";
$conteudo .= trim($campo4[$i2])."' , '";
$conteudo .= trim($campo5[$i2])."' , '";
$conteudo .= trim($campo6[$i2])."' , '";
$conteudo .= trim($campo8[$i2])."' , '";
$conteudo .= trim($campo10[$i2])."' , '";
$conteudo .= trim($campo12[$i2])."' , '";
$conteudo .= trim($campo14[$i2])."' , '";
$conteudo .= trim($campo16[$i2])."' )";
$conteudo .= "; \n";
$ix = fopen("repre_salvo.txt", "w");
fwrite($ix,$conteudo,4096);
fclose($ix);
$i2++;
} // FIM DO SEGUNDO WHILE
}
fclose ($handle);

Não Acessa O Mysql...

16/01/2007, 15:58

Fiz uma atualização em minha máquina, instalando o APACHE 2.2 o PHP 5.1.6, mas continuo usando o MYSQL 4.

O fato é que executo comandos do PHP, mas tudo aquilo que funcionava antes, acessando bancos de dados do MYSQL parou de funcionar, quando chamo qualquer coisa apenas abre uma janela em branco......

Alguma dica?

Dar Um Submit Apenas Numavariável

22/06/2006, 11:46

Quero pegar o valor da resolução no PHP.
Para isso preciso fazer um submit dessa variável.
Como construir isso?

ISSO TERIA DE FICAR ABAIXO DA TAG <HEAD>

<script language="JavaScript">

var largura = window.screen.availWidth; // pegou o valor da largura definida na estação do usuário.

COMO DAR O SUBMIT APENAS DO VALOR LARGURA???????
NÃO EXISTE UM FORM, POIS QUEROAPENAS PASSAR O CONTEÚDO DE LARGURA.

</script>

IPB Skin By Virteq