imagine a seguinte situação: você entra num site onde são apresentadas as ofertas de diversos anunciantes.
baseado nos melhores preços, você vai montando sua lista de compras conforme abaixo:
produto x do anunciante A;
produto y do anunciante A
produto W do anunciante B
produto K do anunciante C;
produto Q do annunciante C
produto Z do anuciante A;
produto XY do anunciante B;
produto YZ do anunciante A; e por aí vai.
meu problema é o seguinte, eu gostaria de imprimir os dados do anunciante, como endereço,telefone de contato,etc... UMA ÚNICA VEZ ao final da lista independente de qtas vzs ele aparece na lista.
segue o código abaixo:
<?php
session_start();
//session_destroy();
?>
<!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=iso-8859-1" />
<title>Documento sem título</title>
<style rel="stylesheet" type="text/css" media="print">
#botao {
display: none
}
</style>
<style>
.total{font:Arial, Helvetica, sans-serif;
font-size:18px;
font-weight:bold;}
.total2{font:Arial, Helvetica, sans-serif;
font-weight:bold;
font-style:italic;
}
.lista{
padding:4px;
}
</style>
</head>
<body>
<?php
//instanciar a p�gina do carrinho
$pagina = 'carrinho.php';
//inicio da class
function conexao(){
//conex�o com banco de dados
mysql_connect($this->hostname, $this->login, $this->senha) or die("N�o foi poss�vel validar os dados".mysql_error());
mysql_select_db($this->banco) or die("N�o foi poss�vel conectar ao banco".mysql_error());
mysql_query("SET NAME 'utf-8'");
mysql_query("SET character_set_connection='utf-8'");
mysql_query("SET character_set_clien='utf-8'");
mysql_query("SET character_set_results='utf-8'");
}
//mostrar carrinho de compra
function carrinho (){
$soma=0;
//verificar session
if($_SESSION){
foreach($_SESSION as $nome=>$quantidade){
if ($quantidade>0){
if(substr($nome,0,9) == 'produtos_'){
// pegar id da session
$id = substr($nome,9,(strlen($nome) -9));
$PD = mysql_query("SELECT id,id_anun, produto, valor FROM integrantes WHERE id=".mysql_real_escape_string((int)$id));
while($list = mysql_fetch_assoc($PD)){
$AN = mysql_query("SELECT `anunciantes`.`id_anun`, `anunciantes`.`nome_anun` FROM `anunciantes` WHERE id_anun=".mysql_real_escape_string($list['id_anun']));
$anun = mysql_fetch_assoc($AN);
$subtotal = $quantidade * $list['valor'];
$_SESSION['anun']=$list['id_anun'];
echo '
<tr>
<td class="lista total2">'.$anun['nome_anun'].'</td>
<td class="lista total2">'.$list['produto'].'</td>
<td class="lista total2">'.$quantidade.' X</td>
<td class="lista total2">R$ '.number_format($list['valor'],2,',','.').'</td>
<td class="lista total2"><a href="processa.php?add='.((int)$id).'"><img src="images/add.png" ="Aumentar Quantidade" width="20" height="20"></a></td>
<td class="lista"><a href="processa.php?menos='.((int)$id).'"><img src="images/menos.png" ="Diminuir Quantidade" width="20" height="20"></a></td>
<td class="lista"><a href="processa.php?del='.((int)$id).'"><img src="images/remove.png" ="Excluir item" width="20" height="20"></a></td>
<td class="lista" class="total">R$ '.number_format($subtotal,2,',','.').'</td>
<tr>
</tr>
</tr>';
echo $list['id_anun'];
//echo $_SESSION['anun'];
$end = mysql_query("SELECT DISTINCT `nome_anun` FROM `anunciantes` WHERE `id_anun` =".$list['id_anun']."HAVING id_anun = 1");
$imprime = mysql_fetch_assoc($end);
//echo $imprime['nome_anun'];
}
}
$soma += $subtotal;
}
}
if($soma == 0){
echo '<td colspan="8" class="total">Sua lista de compras est� vazia! </td>';
}else{
echo '<tr>
<tr>
<td colspan="4"class="total"></td>
<td colspan="2"class="total">TOTAL </td>
<td colspan="2" class="total" align="right"> R$: '.number_format($soma,2,',','.').'</td>
</tr>
<tr>
<td colspan="8"class="total">
</td>
</tr>
';
}
}
}
//fim class
}
$conecta = new shopping();
$conecta->conexao();
function antiSQL($sql)
{
$seg = preg_replace("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/","",$sql); //remove palavras que contenham a sintaxe sql
$seg = trim($seg); //limpa espa�os vazios
$seg = strip_tags($seg); // tira tags html e php
$seg = addslashes($seg); //adiciona barras invertidas a uma string
return $seg;
}
if(isset($_GET['add'])){
$id_produto=$_GET['add'];
$id_produto=antiSQL($id_produto);
$id_produto=(int)$id_produto;
$VER=(mysql_query("SELECT `integrantes`.`id` FROM `integrantes` WHERE id=".$id_produto));
$conta=mysql_num_rows($VER);
if($conta==1)
{
$_SESSION['produtos_'.$_GET['add']] += '1';//(isset($_SESSION['produtos_'.$_GET['add']])) ? $_SESSION['produtos_'.$_GET['add']] + 1 : 1;
header("Location:".$pagina);
}else{
echo "Produto não cadastrado";
}
}
//exclus�o de item
if(isset($_GET['del'])){
$_SESSION['produtos_'.$_GET['del']]= '0';//(isset($_SESSION['produtos_'.$_GET['del']])) ? $_SESSION['produtos_'.$_GET['del']] == 0 : 0;
header('Location:'.$pagina);
}
//subtra��o de item
if(isset($_GET['menos'])){
$_SESSION['produtos_'.$_GET['menos']]--;//(isset($_SESSION['produtos_'.$_GET['del']])) ? $_SESSION['produtos_'.$_GET['del']] == 0 : 0;
header('Location:'.$pagina);
}
?>
</body>
</html>
a parte que está entre as linhas 86 e 92 no código, é uma das inúmeras tentativas que fiz, onde eu consigo imprimir o id do anunciante, mas se tiverem sido selecionados 5 produtos desse anunciante, seu nome aparece cinco vzs.
certo da atenção dos amigos
no aguardo
OBS: no código eu apaguei os dados de conexão ao banco.
Pergunta
jlmsbage
boa tarde!
preciso de um auxilio dos amigos.
imagine a seguinte situação: você entra num site onde são apresentadas as ofertas de diversos anunciantes.
baseado nos melhores preços, você vai montando sua lista de compras conforme abaixo:
produto x do anunciante A;
produto y do anunciante A
produto W do anunciante B
produto K do anunciante C;
produto Q do annunciante C
produto Z do anuciante A;
produto XY do anunciante B;
produto YZ do anunciante A; e por aí vai.
meu problema é o seguinte, eu gostaria de imprimir os dados do anunciante, como endereço,telefone de contato,etc... UMA ÚNICA VEZ ao final da lista independente de qtas vzs ele aparece na lista.
segue o código abaixo:
a parte que está entre as linhas 86 e 92 no código, é uma das inúmeras tentativas que fiz, onde eu consigo imprimir o id do anunciante, mas se tiverem sido selecionados 5 produtos desse anunciante, seu nome aparece cinco vzs.
certo da atenção dos amigos
no aguardo
OBS: no código eu apaguei os dados de conexão ao banco.
Link para o comentário
Compartilhar em outros sites
5 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.