Process of completing PHP purchase

Asked

Viewed 191 times

0

I have the code below and I can "register the purchase" in the order table by entering date, total purchase value and the id of the customer who bought however how do I add the id’s of the products being purchased?

<?php
include 'conexao.php';
session_start();
if (!isset($_SESSION['carrinho'])) {
    $_SESSION['carrinho'] = array();
}

$id = $_GET['produtoid'];
// $_SESSION['produtosCarrinho'][] = $id;
// $novoVetor = array_filter($_SESSION['produtosCarrinho']);
if ($id == 0) {

} else {
//ADICIONAR PRODUTO
    if (!isset($_SESSION['carrinho'][$id])) {

        $_SESSION['carrinho'][$id] = 1;
    } else {

        $_SESSION['carrinho'][$id] += 1;
    }
}
//REMOVER PRODUTO
if ($_GET['acao'] == 'del') {

    $id = $_GET['id'];
    if (isset($_SESSION['carrinho'][$id])) {
        unset($_SESSION['carrinho'][$id]);
    }
}
//ALTERAR QUANTIDADE
if ($_GET['acao'] == 'up') {
    foreach ($_POST['prod'] as $id => $qtd) {
        if (!empty($qtd) || $qtd <> 0) {
            $_SESSION['carrinho'][$id] = $qtd;
        } else {
            unset($_SESSION['carrinho'][$id]);
        }
    }
}
?>  

<html>
    <head>
        <title>Carrinho de compras</title>
        <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
    <body>
        <header>
            <div class="logo">
                <h1><a href="index.php">Loja virtual</a></h1>
            </div><!-- LOGO -->
            <?php
            if (!isset($_SESSION['login'])) {
                // Se não tiver sessão aberta, significa que não tem ninguem logado
                echo '<div class="login">';
                echo '<a href="login.php">Faça Login</a>';
                echo '</div>';
            } elseif ($_SESSION['login'] == 1) {
                // Como alguém logou, a Session = 1
                echo '<div class="login">';
                echo "<h2> Olá, " . $_SESSION['nome'] . "</h2>";
                echo "<p><a href='sair.php'>Sair</a></p>";
                echo"<p><a href='painel.php'>Consultar pedidos</a></p>";
                echo '</div>';
            } elseif ($_SESSION['login'] == 0) {
                echo "Login = 0. User deslogado.";
            }?>
            <div class="clear"></div>
        </header><!-- HEADER -->
        <form action="?acao=up" method="post">
            <table class="carrinho-page">
                <tr>
                    <th>Nome</th>
                    <th>Quantidade</th>
                    <th>Preço Unitário</th>
                    <th>Subtotal</th>
                </tr>

            <?php
            if (count($_SESSION['carrinho']) == 0) {
                echo "Carrinho vazio";
            } else {
                $total = 0;
                foreach ($_SESSION['carrinho'] as $id => $qtd) {
                    $sql = "SELECT * FROM produto where id = '$id' ";
                    $resultado = $PDO->query($sql);
                    $resultado->execute();
                    $vetorResultado = $resultado->fetch();

                    $nome = $vetorResultado['nome'];
                    $preco = $vetorResultado['preco'];
                    $sub = $vetorResultado['preco'] * $qtd;
                    $total = $total + $sub;
                    echo "<tr><td class='nome'>" . $nome . "</td>
                        <td><input type='text' size='3' name='prod[" . $id . "]' value='" . $qtd . "'></td>
                        <td>R$ " . $preco . "</td>
                        <td>R$ " . $sub . "</td>
                        <td><a href='carrinho.php?acao=del&id=" . $id . "'>Remover</a></td>";
                }
            }?>
                <tr>
                    <td colspan="0"><b>Preço total: R$ <?php echo "$total"; ?></b>
                </tr>
            </table>

            <input type="submit" name="comprar" value="Finalizar compra">
                <?php
                if (isset($_POST['comprar'])) {
                    include 'Pedido.php';
                    $data = date("Y-m-d H:m");
                    $valorTotal = $total;
                    $clienteId = $_SESSION['id'];
                    // print_r($novoVetor);
                    $novoPedido = new Pedido(" ", $data, $valorTotal, $clienteId, " ");

1 answer

0

you can use a json field and save the products with their Ids, value and quantity

most databases support this type of data, as you are using PHP believe you are using Mysql, this is the official documentation for this type of data https://dev.mysql.com/doc/refman/5.7/en/json.html

Browser other questions tagged

You are not signed in. Login or sign up in order to post.