AlexArt5 Postado Novembro 8, 2011 Denunciar Share Postado Novembro 8, 2011 Olá!Tive muitos problemas em utilizar tabelas temporárias para montar uma lista de itens.Talvez esta não seja a melhor forma de lidar com isso, mas é a forma que atendeu minhas expectativas.Eu uso uma tabela MyIsan com nome: vendas (tudo minúsculo) e campos:cod int(5) AUTO_INCREMENT produto varchar(255) latin1_swedish_ci unid varchar(25) latin1_swedish_ci quant int(150) valor float codvenda int(255) data dateDepois insira alguns dados na tabela.O objetivo é criar uma lista sem o uso do for ou while.O índice deve ser incrementado depois que se escolhe a quantidade de itens na lista.observando o código você verá várias variáveis de sessão. Entre elas estão as variáveis que guardarão o valor atual e somará ao valor existente.loja_virtual.php <?php require_once("conexao.php"); @session_start('compras'); // Definição de Arrays com índices limitados $cod = new SplFixedArray(21); $produto = new SplFixedArray(21); $unid = new SplFixedArray(21); $quant = new SplFixedArray(21); $valor = new SplFixedArray(21); $lista= new SplFixedArray(21); $dois=0; $tres=0; $quatro=0; $cinco=0; $seis=0; $sete=0; $oito=0; $nove=0; $dez=0;// variaveis para somas // incrementação do index dos arrays de sessão ------------- $_SESSION['ind']=0; $_SESSION['index']=@$_SESSION['index']+$_SESSION['ind']; // index geral $i = $_SESSION['index']; //---------------------------------------------------------- if (isset($_POST['select'])) {// ao selecionar um produto $menux=substr(@$_POST['select'],0,3); // seleciona os tres primeiro caracterer da string // esse switch só funciona se na string $menux houver zeros antes dos números // ex: 001 ou 011 switch ($menux) { case substr($menux,0,2)=="00": $menux=substr($menux,-1); break; case substr($menux,0,1)=="0": $menux=substr($menux,1,2); break; } // seleciona a tabela venda $sql = mysql_query("SELECT * FROM venda WHERE cod='$menux' "); // busca linha com o valor $menux $res = mysql_fetch_row($sql);// cria array com os dados da tabela $unid=$res[4];// valor do produto // variaveis para soma , primeiro passo: pegar valor de $unid e multiplicá-lo $dois=$unid*2; $tres=$unid*3; $quatro=$unid*4; $cinco=$unid*5; $seis=$unid*6; $sete=$unid*7; $oito=$unid*8; $nove=$unid*9; $dez=$unid*10; // Mostra resultado da primeira pesquisa -------------------------------------------------------------------------------- @$_SESSION['codg']=$res[0]; // variável que será utilizado para acessar determinado dado do banco de dados @$_SESSION['prodt']=$res[1]; // variável com informação que será mostrado em um text box @$_SESSION['valo']=$unid;// variável com informação que será mostrado em um text box if($menux==""){// se $menux for = 0 $imagem="produtos/x.png";// mostre uma imagem padrão }else{// senão $s= mysql_query("SELECT codvenda FROM venda WHERE cod='$menux'");// seleciona campo img do banco de dados / caminho da imagem $im = mysql_fetch_object($s);// cria array de busca pela imagem $imagem="produtos/".$im->codvenda;// associa o caminho da imagem e busca pelo nome } }// < - if (isset($_POST['select'])) == fim do if $c=@$_SESSION['codg'];// variável que será utilizado para acessar determinado dado do banco de dados $p=@$_SESSION['prodt'];// variável com informação que será mostrado em um text box $v=@$_SESSION['valo'];// variável com informação que será mostrado em um text box ?> <style type="text/css"> <!-- body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } .style10 { font-size: 18px } .style7 {color: #FF0000} .style11 {font-size: 24px} .style12 {font-size: 16px} --> </style> <script type="text/javascript"> <!-- function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } //--> </script> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td background="fitfundo.png"> </td> <td colspan="9" background="fitfundo.png"><?php $menus = @$_GET['menu'];// pega valor da variável menu - (cod , item , qt) // ---------------------------------------------------------------------------------------------------------------------- if(isset($_POST['qt'])){ // ao selecionar a quantidade de produtos $_SESSION["control"]=1;// validar próximo if if($_SESSION["control"]=1){ $menux = $c; $sql = mysql_query("SELECT * FROM venda WHERE cod ='$c' "); $res = mysql_fetch_row($sql); $cod[$i]=$res[0];// codigo do produto $produto[$i]=$res[1];// nome do produto $codvenda[$i]=$res[5];// codigo de venda $data[$i]=date('Y-m-d');// data atual $quant[$i]=$_POST['qt'];// quantidade de produtos $unid[$i]=$res[4];// valores x quantidade de produtos $vale=$res[4]*$quant[$i];// envia para total $valor[$i]=$vale;// valor do produto // preencher array de arrays $lista[$i]=$cod[$i]." ".$produto[$i]." ". @number_format($unid[$i],2,',','.')." ".$quant[$i]." ". @number_format($valor[$i],2,',','.')." "; $_SESSION["loop"][$i] = $lista{$i};// Array de sessão ( substituto da tabela temporária ) if ($i<20) {(int)$_SESSION['index']++;}// controle do incremento do indice do array de sessão $_SESSION["control"]=0;// sair do if }// <- if $_SESSION["control"] if($i==20){header("location: imprimir.php");}// se o índice atingir o limite chame a página para impressão }// <- if $_POST['qt'] ?></td> <td background="fitfundo.png"> </td> </tr> <tr> <td background="fitfundo.png"> </td> <td colspan="9"><form id="produto" name="produto" method="post" action=""> <p>Produtos: <select name="select" id="select"> <option value="" selected="selected"></option> <? $t = mysql_query("SELECT cod,produto,valor,codvenda FROM venda"); // Carrega no menu os dados de venda while($r = @mysql_fetch_array($t)){ echo '<option>'.$r['0'].' '.$r['1'].' '.number_format($r['2'],2,',','.').'</option><br/>';// cria opções a partir dos dados da tabela } ?> </select> <input type="submit" name="set" id="set" value="Lista" /> </p> </form></td> <td background="fitfundo.png"> </td> </tr> <tr> <td width="1%" background="fitfundo.png"> </td> <td colspan="9"> </td> <td width="4%" background="fitfundo.png"> </td> </tr> <tr> <td height="30" background="fitfundo.png"> </td> <td width="1%"> </td> <td colspan="6"><form id="form1" name="form1" method="post" action=""> <label></label> <label></label> <label></label> <label></label> <table width="101%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="46%" rowspan="5"><? if(!@$imagem){ echo "<img src='./produtos/x.png'/>"; }else{ echo "<img src='".@$imagem."'/>"; } ?> </td> <td colspan="2">Cod.</td> <td colspan="3"><div align="center">Produto</div></td> </tr> <tr> <td colspan="2"><input name="textfield" type="text" id="textfield" value="<? echo $c;?>" size="5" maxlength="5" /></td> <td colspan="3"><input name="textfield2" type="text" id="textfield2" value="<? echo $p;?>" size="70" maxlength="70" /></td> </tr> <tr> <td colspan="2"> </td> <td colspan="3"><div align="right"></div></td> </tr> <tr> <td colspan="2">Unid.</td> <td width="10%"><input class="style10" name="textfield3" type="text" id="textfield3" value="<? echo "R$ ".@number_format($v,2,',','.');?>" size="15" maxlength="15" /></td> <td><? echo " Item ".$i;?></td> <td>Quantid.: <label> <select name="qt" id="qt"> <option selected="selected">1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> </select> </label> <input type="submit" name="ok2" id="ok2" value=" Inserir na lista " /></td> </tr> <tr> <td width="2%"> </td> <td colspan="2"> <? // valores multiplicados por números de 2 a 10 echo "2 - R$ ".@number_format($dois ,2,',','.')."<br/>". "3 - R$ ".@number_format($tres ,2,',','.')."<br/>". "4 - R$ ".@number_format($quatro,2,',','.')."<br/>". "5 - R$ ".@number_format($cinco ,2,',','.')."<br/>". "6 - R$ ".@number_format($seis ,2,',','.')."<br/>". "7 - R$ ".@number_format($sete ,2,',','.')."<br/>". "8 - R$ ".@number_format($oito ,2,',','.')."<br/>". "9 - R$ ".@number_format($nove ,2,',','.')."<br/>". "10 - R$ ".@number_format($dez ,2,',','.');?> </td> <td width="11%"><p class="style11">Total :</p> <p> </p></td> <td width="26%"><p class="style11"> <?php $_SESSION['parcl']=$valor[$i];// valor atual do total $_SESSION['total']=@$_SESSION['total']+@$_SESSION['parcl'];// valor do total + novo valor $resu=$_SESSION['total'];// prepara para imprimir echo "R$ "."<strong class='style11'>".@number_format($resu,2,',','.')."</strong>";// imprime total //} ?> </p> <p ><? echo "<a href='imprimir.php'>[Imprimir]</a>";?></p></td> </tr> </table> </form> </td> <td colspan="2"> </td> <td background="fitfundo.png"> </td> </tr> <tr> <td height="19" background="fitfundo.png"> </td> <td bordercolor="#000066"> </td> <td width="20%" bordercolor="#000066"> </td> <td width="18%" bordercolor="#000066"> </td> <td colspan="6" bordercolor="#000066"> </td> <td background="fitfundo.png"> </td> </tr> <tr> <td height="22" background="fitfundo.png"> </td> <td colspan="9" bordercolor="#000066" bgcolor="#FAFFE6"> </td> <td background="fitfundo.png"> </td> </tr> <tr> <td background="fitfundo.png"> </td> <td colspan="3"> </td> <td width="11%"> </td> <td width="5%"> </td> <td colspan="2"> </td> <td> </td> <td> </td> <td background="fitfundo.png"> </td> </tr> <tr> <td background="fitfundo.png"> </td> <td colspan="3"> <?php $datas=date('d-m-Y'); echo " Data :".$datas; ;?> </td> <td> </td> <td colspan="3"><div align="left" class="style11"></div></td> <td width="1%"> </td> <td> </td> <td background="fitfundo.png"> </td> </tr> <tr> <td background="fitfundo.png"> </td> <td colspan="9"><?php // visualizando resultados if(@$_SESSION["loop"][0]>0){ echo @$_SESSION["loop"][0]."<br/>"; } if(@$_SESSION["loop"][1]>0){ echo @$_SESSION["loop"][1]."<br/>"; } if(@$_SESSION["loop"][2]>0){ echo @$_SESSION["loop"][2]."<br/>"; } if(@$_SESSION["loop"][3]>0){ echo @$_SESSION["loop"][3]."<br/>"; } if(@$_SESSION["loop"][4]>0){ echo @$_SESSION["loop"][4]."<br/>"; } if(@$_SESSION["loop"][5]>0){ echo @$_SESSION["loop"][5]."<br/>"; } if(@$_SESSION["loop"][6]>0){ echo @$_SESSION["loop"][6]."<br/>"; } if(@$_SESSION["loop"][7]>0){ echo @$_SESSION["loop"][7]."<br/>"; } if(@$_SESSION["loop"][8]>0){ echo @$_SESSION["loop"][8]."<br/>"; } if(@$_SESSION["loop"][9]>0){ echo @$_SESSION["loop"][9]."<br/>"; } if(@$_SESSION["loop"][10]>0){ echo @$_SESSION["loop"][10]."<br/>"; } if(@$_SESSION["loop"][11]>0){ echo @$_SESSION["loop"][11]."<br/>"; } if(@$_SESSION["loop"][12]>0){ echo @$_SESSION["loop"][12]."<br/>"; } if(@$_SESSION["loop"][13]>0){ echo @$_SESSION["loop"][13]."<br/>"; } if(@$_SESSION["loop"][14]>0){ echo @$_SESSION["loop"][14]."<br/>"; } if(@$_SESSION["loop"][15]>0){ echo @$_SESSION["loop"][15]."<br/>"; } if(@$_SESSION["loop"][16]>0){ echo @$_SESSION["loop"][16]."<br/>"; } if(@$_SESSION["loop"][17]>0){ echo @$_SESSION["loop"][17]."<br/>"; } if(@$_SESSION["loop"][18]>0){ echo @$_SESSION["loop"][18]."<br/>"; } if(@$_SESSION["loop"][19]>0){ echo @$_SESSION["loop"][19]."<br/>"; } if(@$_SESSION["loop"][20]>0){ echo @$_SESSION["loop"][20]."<br/>"; } ?></td> <td background="fitfundo.png"> </td> </tr> <tr> <td height="21" background="fitfundo.png"> </td> <td colspan="3"> </td> <td colspan="2"> </td> <td width="24%"> </td> <td colspan="2"> </td> <td width="1%"> </td> <td background="fitfundo.png"> </td> </tr> <tr> <td height="21" background="fitfundo.png"> </td> <td colspan="8"><blockquote> <p align="justify">OBS: Mantenha a embalagem do produto conservada enquanto durar a garantia. Guarde seu comprovante de compra e garanta seu direito à troca do produto ou a devolução do dinheiro. <span class="style7">Não trocamos produtos danificados fisicamente. </span>A troca só será feita mediante comprovação do mal funcionamento do produto.</p> </blockquote></td> <td width="1%"> </td> <td background="fitfundo.png"> </td> </tr> <tr> <td height="21" background="fitfundo.png"> </td> <td colspan="8" background="fitfundo.png"><blockquote> <pre> </pre> </blockquote> </td> <td width="1%" background="fitfundo.png"> </td> <td background="fitfundo.png"> </td> </tr> </table> <p> </p> Para imprimir imprimir.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Pedido</title> <style type="text/css"> <!-- .style2 {font-size: 14px} .style3 { font-size: 16px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; } .style5 { font-family: Arial, Helvetica, sans-serif; font-size: 18px; font-weight: bold; } .style6 {font-family: Arial, Helvetica, sans-serif} #apDiv1 { position:absolute; left:15px; top:81px; width:661px; height:199px; z-index:1; background-color: #FFFFFF; visibility: visible; } body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } #apDiv2 { position:absolute; left:1px; top:6px; width:363px; height:371px; z-index:2; } --> .style13 { font-size: 18px; font-weight: bold; } .style11 {font-size: 24px} </style> </head> <body> <table width="691" height="286" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="6"><div align="center"> <pre> </pre> </div></td> </tr> <tr> <td height="127"> </td> <td colspan="4"><table width="97%" height="117" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="3%"> </td> <td width="19%" rowspan="2"><div align="center"><img src="734.png" width="150" height="78" /></div> <div align="center"></div> </td> <td rowspan="2"><div align="center"> <pre align="center"><span class="style5">Comp7 Informática</span></pre> <pre align="center"><span class="style6">Manutenção e Venda Rua: </span><span class="style6">Arnaldo Bonaventura 281 - Cidade Tiradentes</span></pre> <pre align="center"><span class="style3"> Fone: 2282 - 5945</span></pre> </div></td> <td width="14%"> </td> </tr> <tr> <td height="40"> </td> <td> </td> </tr> <tr> <td height="28"> </td> <td> </td> <td> </td> <td><? echo "<a href='#' onclick='window.print();'>[Imprimir]</a>";?></td> </tr> <tr> <td> </td> <td><?php $datas=date('d-m-Y'); echo " Data :".$datas; ;?></td> <td width="64%"><?php $codvenda=time(); echo " Código de Venda : ".$codvenda; ?></td> <td> </td> </tr> </table> <p> <?php @session_start('compras'); $i=@$_GET['apaga']; if($i=='ok'){ unset($_SESSION['dado']); unset($_SESSION['codg']); unset($_SESSION['prodt']); unset($_SESSION['valo']); unset($_SESSION['index']); unset($_SESSION['total']); unset($_SESSION['parcl']); for($x=0; $x<21; $x++){ unset($_SESSION["loop"][$x]); } header("location:comp7_informatica.php"); } // visualizando resultados if(@$_SESSION["loop"][0]>0){ echo @$_SESSION["loop"][0]."<br/>"; } if(@$_SESSION["loop"][1]>0){ echo @$_SESSION["loop"][1]."<br/>"; } if(@$_SESSION["loop"][2]>0){ echo @$_SESSION["loop"][2]."<br/>"; } if(@$_SESSION["loop"][3]>0){ echo @$_SESSION["loop"][3]."<br/>"; } if(@$_SESSION["loop"][4]>0){ echo @$_SESSION["loop"][4]."<br/>"; } if(@$_SESSION["loop"][5]>0){ echo @$_SESSION["loop"][5]."<br/>"; } if(@$_SESSION["loop"][6]>0){ echo @$_SESSION["loop"][6]."<br/>"; } if(@$_SESSION["loop"][7]>0){ echo @$_SESSION["loop"][7]."<br/>"; } if(@$_SESSION["loop"][8]>0){ echo @$_SESSION["loop"][8]."<br/>"; } if(@$_SESSION["loop"][9]>0){ echo @$_SESSION["loop"][9]."<br/>"; } if(@$_SESSION["loop"][10]>0){ echo @$_SESSION["loop"][10]."<br/>"; } if(@$_SESSION["loop"][11]>0){ echo @$_SESSION["loop"][11]."<br/>"; } if(@$_SESSION["loop"][12]>0){ echo @$_SESSION["loop"][12]."<br/>"; } if(@$_SESSION["loop"][13]>0){ echo @$_SESSION["loop"][13]."<br/>"; } if(@$_SESSION["loop"][14]>0){ echo @$_SESSION["loop"][14]."<br/>"; } if(@$_SESSION["loop"][15]>0){ echo @$_SESSION["loop"][15]."<br/>"; } if(@$_SESSION["loop"][16]>0){ echo @$_SESSION["loop"][16]."<br/>"; } if(@$_SESSION["loop"][17]>0){ echo @$_SESSION["loop"][17]."<br/>"; } if(@$_SESSION["loop"][18]>0){ echo @$_SESSION["loop"][18]."<br/>"; } if(@$_SESSION["loop"][19]>0){ echo @$_SESSION["loop"][19]."<br/>"; } if(@$_SESSION["loop"][20]>0){ echo @$_SESSION["loop"][20]."<br/>"; } ?> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="65%"> </td> <td width="28%" colspan="2"> </td> <td width="7%"> </td> </tr> <tr> <td><div align="right"><span class="style13">Total </span>: </div></td> <td> </td> <td><?php $resu=$_SESSION['total']; echo "R$ "."<strong class='style11'>".@number_format($resu,2,',','.')."</strong>"; //} ?></td> <td> </td> </tr> <tr> <td> </td> <td colspan="2"> </td> <td> </td> </tr> </table> <p> <p>______________________________________________<img src="tes.png" width="50" height="50" /> <p>Data:________________ Recebido por:____________________________________________ RG:_________________________________ > <?php echo " Código de Venda : ".$codvenda; ?> </p></td> <td> </td> </tr> <tr> <td height="143"> </td> <td colspan="4"><table width="90%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="7%"> </td> <td colspan="3"> </td> <td width="12%"> </td> </tr> <tr> <td> </td> <td width="9%"><a href="#" onclick="window.print();"><img src="impressora.png" width="60" height="50" /></a></td> <td width="38%"> </td> <td width="34%"><form id="form1" name="form1" method="post" action="?apaga=ok"> <label> <input type="submit" name="button" id="button" value="Terminar" /> </label> </form> </td> <td> </td> </tr> <tr> <td> </td> <td><pre class="style2">Imprimir</pre></td> <td colspan="2"> </td> <td> </td> </tr> <tr> <td> </td> <td colspan="3"> </td> <td> </td> </tr> </table></td> <td> </td> </tr> </table> <p> </body> </html>Depois de tanta ajuda que obtive achei que poderia contribuir com algo.Espero ter ajudado de alguma forma. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
AlexArt5
Olá!
Tive muitos problemas em utilizar tabelas temporárias para montar uma lista de itens.
Talvez esta não seja a melhor forma de lidar com isso, mas é a forma que atendeu minhas expectativas.
Eu uso uma tabela MyIsan com nome: vendas (tudo minúsculo)
e campos:
cod int(5) AUTO_INCREMENT
produto varchar(255) latin1_swedish_ci
unid varchar(25) latin1_swedish_ci
quant int(150)
valor float
codvenda int(255)
data date
Depois insira alguns dados na tabela.
O objetivo é criar uma lista sem o uso do for ou while.
O índice deve ser incrementado depois que se escolhe a quantidade de itens na lista.
observando o código você verá várias variáveis de sessão. Entre elas estão as variáveis que guardarão o valor atual e somará ao valor existente.
Para imprimirDepois de tanta ajuda que obtive achei que poderia contribuir com algo.
Espero ter ajudado de alguma forma.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.