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. 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.