Ir para conteúdo
lezão

Carrinho de Compras

Recommended Posts

Boa tarde, pessoal!

tenho um codigo que peguei de uma video aula, na video aula funciona normal, mas comigo naun esta funcionando!

os codigos estaun identicos e em meu server naun roda.

alguem pode me ajudar?

 

veja o codigo index.php


<!DOCTYPE html>
<html lang="pt-br">
<head>
	<meta charset="UTF-8">
	<title>Carrinho de Compras</title>
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" />

</head>
<body>
	<div class="container">
		<div class="row">
		
		<?php 	
	$pdoConnection = require("conexao.php");
    $sql = mysqli_query($link, "SELECT * FROM tab_pedido");
    //$qr = mysql_query($sql) or die (mysql_error()); 
    while($line = mysqli_fetch_array($sql)){
                                        $Nome_produto       = $line['Nome_produto'];
                                        $Valor_produto      = $line['Valor_produto'];
                                        $Descricao_produto  = $line['Descricao_produto'];
                                        $Foto_produto       = $line['Foto_produto'];
                                        $id_produtos        = $line['id_produtos'];
?>

				<div class="col-4">
					<div class="card">
						<div class="card-body">
						    <h4 class="card-title"><?php echo $Nome_produto;?></h4>
						    <h4 class="card-title"><img src="<?php echo $Foto_produto; ?>" style="border-radius: 10px;" width="75px" height="75px" /></h4>
							 
							 <h6 class="card-subtitle mb-2 text-muted">
							  	R$<?php echo number_format($Valor_produto, 2, ',', '.')?>
							 </h6>

							 <a class="btn btn-primary" href="teste_carrinho.php?acao=add&id=<?php echo $id_produtos;?>" class="card-link">Comprar</a>
						</div>
					</div><br/>
				</div>

									    <?php 
    
                                        }
                                        ?>
                                        
		</div>
	</div>
	
</body>
</html>

codigo carrinho.php

<?php
session_start();
if(!isset($_SESSION['carrinho'])){
$_SESSION['carrinho'] = array();
} 
//ADICIONA PRODUTOS

if(isset($_GET['acao'])){
    
//ADICIONAR CARRINHO

if($_GET['acao'] == 'add'){
$id = intval($_GET['id_produtos']);
if(!isset($_SESSION['carrinho'][$id])){
$_SESSION['carrinho'][$id] = 1;
} else {
$_SESSION[‘carrinho’][$id] += 1;
}
} 
//REMOVER CARRINHO

if($_GET['acao'] == 'del'){
$id_produtos = intval($_GET['id_produtos']);
if(isset($_SESSION['carrinho'][$id_produtos])){
unset($_SESSION['carrinho'][$id_produtos]);
}
} 
//ALTERAR QUANTIDADE

if($_GET['acao'] == 'up'){
if(is_array($_POST['prod'])){
foreach($_POST['prod'] as $id_produtos => $qtd){
$id_produtos = intval($id_produtos);
$qtd         = intval($qtd);
if(!empty($qtd) || $qtd <> 0){
$_SESSION['carrinho'][$id_produtos] = $qtd;
}else{
unset($_SESSION['carrinho'][$id_produtos]);
}
}
}
}
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" />

</head>
<body>

	<div class="container">
		<div class="card mt-5">
			 <div class="card-body">
	    		<h4 class="card-title">Carrinho</h4>
	    		<a href="teste_index.php">Lista de Produtos</a>
	    	</div>
		</div>


			<form action="?acao=up" method="post">
			<table class="table table-strip">
				<thead>
					<tr>
						<th>Produto</th>
						<th>Quantidade</th>
						<th>Preço</th>
						<th>Subtotal</th>
						<th>Ação</th>

					</tr>				
				</thead>
				<tbody>
<?php

        if(count($_SESSION['carrinho']) == 0){
        echo'<tr>
        <td colspan="5">Não há produto no carrinho</td>
        </tr>';
        } else {
        include "conexao.php";
        $total = 0;
        foreach($_SESSION['carrinho'] as $id_produtos => $qtd){
        $sql = "SELECT * FROM tab_pedido WHERE id_produtos = '$id_produtos'";
        $qr = mysql_query($sql) or die (mysql_error());
        $ln = mysql_fetch_assoc($qr);
        $Nome_produto = $ln['Nome_produto'];
        $Valor_produto = number_format($ln['Valor_produto'], 2, ',', '.');
        $sub = number_format($ln['Valor_produto'] * $qtd, 2, ',', '.');
        $total += $ln['Valor_produto'] * $qtd;
        echo '
        <tr>
        <td>'.$Nome_produto.'</td>
        <td><input type="text" size="3" name="prod['.$id_produtos.']" value="'.$qtd.'" /></td>
        <td>R$ '.$Valor_produto.' </td>
        <td>R$ '.$sub.'</td>
        <td><a href="?acao=del&id_produtos='.$id_produtos.'">Remove</a></td>
        </tr>';
        }
        $total = number_format($total, 2, ',','.');
        echo '<tr>
        <td colspan="4">Total</td>
        <td>R$ '.$total.'</td>
        </tr>';
        }
?>

</tbody>
</form>
</table>

</body>
</html>      

aonde eu estou errando????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde!! Tudo blz?
Pra nos ajudar a orientar com maior precisão, nos diga até onde o script "rodou" e qual foi a mensagem de erro. (uma vez que não podemos reproduzir a execução do script)
Senão vamos ficar tentando encontrar desde o início:
Certifique-se de que seu server tem um interpretador de arquivos .php;
Certifique-se de que o pdo e o mysqli estão instalados e liberados no php.ini;
Se estiver usando apache ou  caddy ao invés de nginx, verifique o mod_rewrite e o arquivo .htaccess;
Verifique se a pastinha definida para os arquivos temporários de sessão existe e tem as permissões de escrita e leitura;
etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite, Tetsuo!

td bem com você?

 

não dá nenhum erro 

 

mas veja ai no link oq acontece 

site

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite!
Tudo bem sim. E você?

 

17 horas atrás, lezão disse:

não dá nenhum erro 


Ative a exibição de erros
a) No php.ini remova o ponto e vírgula do início da linha:
; error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT

ou

b) Logo após abrir a tag php, defina:
<?php
error_reporting(E_ALL);

E veja no browser, se algum erro vai ser exibido

 

17 horas atrás, lezão disse:

mas veja ai no link oq acontece 

E o que deveria acontecer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparece normal no browser.

http://mercatotal.com.br/pizzaria/teste_carrinho.php?acao=add&id=2

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai tudo bem?

O erro mysql_query talvez seja porque seu servidor esta habilitado para mysqli.....

De uma olhada no "index" que você postou acima, observe ....tem uma linha com mysqli_query.....e uma comentada mysql_query....provavelmente é apenas isso no carinho.php....

Troque a opção mysql_query por mysqli_query.....

Passei por muitas dessas.....

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a versão do PHP, pois esta extensão tornou-se obsoleta no PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, a extensão MySQLi ou PDO_MySQL deve ser usada. 

 

https://www.php.net/manual/en/function.mysql-query.php

 

Para ver qual versão esta usando:

 

<?php 

phpinfo();

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por FabianoSouza
      Eu preciso exibir duas informações em minha consulta:
      1) A quantidade de pessoas inscritas numa turma de treinamento (isso é feito com um simples COUNT)
      2) Uma flag de excesso de inscrições na turma. Seria obtido pela comparação entre a quantidade máxima permitida (já existe esse campo) e o COUNT feito acima.
       
      Até aqui sem problemas.
       
      O que quero é evitar fazer duas contagens (1 para saber a quantidade de inscritos, e outra para gerar a flag de excesso de inscrições).
       
      Há uma forma de utilizar UMA contagem para atender as duas necessidades?
       
      Meu código está assim:
       
      ... --AQUI FAZ A COMPARAÇÃO PARA GERAR A FLAG DE EXCESSO DE INSCRIÇÕES , CASE WHEN (SELECT COUNT(*) FROM dbo.tab AS ITT WHERE ITT.codTurmaDeTreina = T.id) > T.lotacaoMax Then T.nome + '&nbsp;'+'<span class=%22icon-aviso fcolor-critico%22 style=%22font-size:18px%22 title=Excesso&nbsp;de&nbsp;inscrições></span>' --AQUI FAZ A CONTAGEM DE INSCRIÇÕES , (SELECT COUNT(*) FROM dbo.tab AS ITT WHERE ITT.codTurmaDeTreina = T.id) AS 'Inscrições'  
    • Por FabianoSouza
      Possuo uma coluna de data.
      Eu gostaria que os registros com datas futuras aparecessem no topo do meu select, em relação aos demais registros.
      Em seguida, gostaria que somente esses registros com datas futuras ficassem em ordem crescente.
      Algo como 
       
      João  | 16/11/2023
      Maria | 17/11/2023
      José  |  20/11/2023
       
      -----------------------------
      (demais registros da base)
      Antônio   |  20/05/2023
      Rosa        | 15/08/2023
      Cida         | 15/10/2022
      Pedro      |  20/05/2021
      Paulo      |  14/11/2020
       
      O select seria esse.
      select dbo.formataData(ET.dataInicial) AS 'data' FROM dbo.tab AS ET GROUP BY ET.dataInicial  
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.