Grandes oportunidades

Carrito de compras con PHP y MYSQL

Php - Mysql - Javascript


26/08/2022


Carrito de compras con PHP y MYSQL

Descripción

Crea un fantástico carrito de compras con PHP y MYSQL para tu tienda online donde tus clientes podrán realizarte pedido con todas las facilidades.
Aquí te explico como crear un carrito de compras con php de forma muy sencilla y en muy pocos pasos. Sigue todos los pasos para crear un carrito de compras con php. Lo primero que tienes que tener en cuenta para crear tu carrito de compas con php es la cantidad de archivos que tendrás que crear y con lo que trabajarás.
Estos archivos son "index.php" "cart.php" y "borrarcarro.php".
Una vez creado nuestros archivo vamos a ponernos en marcha con el primero.
index.php:
Lo primero que realizaremos en nuestro código es iniciar la sesión ya que vamos a crear un carrito de compras con sesiones php así que en nuestra primera línea insertaremos la siguiente línea.

 

 session_start();

 


Seguidamente vamos a crear nuestro contenedor donde insertaremos la consulta SQL para mostrar todos los resultados de nuestros productos.

 

<div class="center mt-5">

    <div class="card pt-3" >

            <p style="font-weight: bold; color: #0F6BB7; font-size: 22px;">Carrito de comprap>

        <div class="container-fluid p-2" style="background-color: ghostwhite;">

 

             $busqueda=mysqli_query($conexion,"SELECT * FROM articulos_cp ");

            $numero = mysqli_num_rows($busqueda); ?>

 

            <h5 class="card-tittle">Resultados ( echo $numero; ?>)h5>

            <div class="container_card">

             

               while ($resultado = mysqli_fetch_assoc($busqueda)){

           

                    ?>

 

                    <form id="formulario" name="formulario" method="post" action="cart.php">

                        <div class="blog-post ">

                            <img src="../Insertar artículo/articulos/ echo $resultado["img"]; ?>.jpg" >

                            <a class="category">

                                 echo $resultado["precio"]; ?>

                            a>

                                <div class="text-content">

                                    <input name="ref" type="hidden" id="ref" value=" 

echo $resultado["ref"]; ?>" />                          

                                    <input name="precio" type="hidden" id="precio" value=" 

echo $resultado["precio"]; ?>" />

                                    <input name="titulo" type="hidden" id="titulo" value=" 

echo $resultado["titulo"]; ?>" />

                                    <input name="cantidad" type="hidden" id="cantidad" value="1" 

class="pl-2" />

                                        <div class="card-body">

                                                <h5 class="card-title"> echo $resultado["titulo"]; ?>h5>

                                                <p> echo $resultado["descripcion"]; ?>p>

                                                <button class="btn

btn-primary" type="submit" ><i class="fas fa-shopping-cart">i>

Añadir al carrito button>

                                        div>

                                div>

                        div>

                    form>

                     } ?>

            div>

        div>

    div>

               

div>

 


Como veis en el contenedor tenemos la consulta donde mostramos los resultados mediante WHILE con los datos que nos interesa de nuestro producto y después tenemos varios datos ocultos los cuales vamos a mandar a nuestro carrito de compras php.
Esos campos son los siguientes.

 

<input name="ref" type="hidden" id="ref" value=" 

echo $resultado["ref"]; ?>" />                          

<input name="precio" type="hidden" id="precio" value=" 

echo $resultado["precio"]; ?>" />

<input name="titulo" type="hidden" id="titulo" value=" 

echo $resultado["titulo"]; ?>" />

<input name="cantidad" type="hidden" id="cantidad" value="1" class="pl-2" />                  

 


Estos serian los campos que estamos mandando a nuestro carrito de compras.
Los mandaremos a "cart.php" donde estará nuestro carrito de compras recogiendo los datos y almacenándolos en la sesión php.

 

<form id="formulario" name="formulario" method="post" action="cart.php">

 


El siguiente paso es dirigirnos al archivo donde vamos a almacenar los datos de nuestro carrito de compras por php.
Abrimos cart.php
Aquí vamos inserta lo primero el inicio de nuestra sesión y lo siguiente vamos a poner nuestro carrito en funcionamiento.

 

session_start();

 

//aqui empieza el carrito

if(isset($_SESSION["carrito"]) || isset($_POST["titulo"])){

    if(isset($_SESSION["carrito"])){

        $carrito_mio=$_SESSION["carrito"];

        if(isset($_POST["titulo"])){

            $titulo=$_POST["titulo"];

            $precio=$_POST["precio"];

            $cantidad=$_POST["cantidad"];

            $ref=$_POST["ref"];

            $donde=-1;

            for($i=0;$i<=count($carrito_mio)-1;$i ++){

               if($ref==$carrito_mio[$i]["ref"]){

               }

            }

            if($donde != -1){

                $cuanto=$carrito_mio[$donde]["cantidad"+ $cantidad;

                $carrito_mio[$donde]=array("titulo"=>$titulo,

"precio"=>$precio, "cantidad"=>$cuanto,"ref"=>$ref);

            }else{

                $carrito_mio[]=array("titulo"=>$titulo,

"precio"=>$precio,"cantidad"=>$cantidad,"ref"=>$ref);

            }

        }

    }else{

        $titulo=$_POST["titulo"];

        $precio=$_POST["precio"];

        $cantidad=$_POST["cantidad"];

        $ref=$_POST["ref"];

        $carrito_mio[]=array("titulo"=>$titulo,

"precio"=>$precio,"cantidad"=>$cantidad,"ref"=>$ref);    

    }

    if(isset($_POST["cantidad"])){

        $id=$_POST["id"];

        $cuantos=$_POST["cantidad"];

        if($cuantos<1){

            $carrito_mio[$id]=NULL;

        }else{

            $carrito_mio[$id]["cantidad"]=$cuantos;

        }

    }

    if(isset($_POST["id2"])){

        $id=$_POST["id2"];

        $carrito_mio[$id]=NULL;

    }

   

$_SESSION["carrito"]=$carrito_mio;

}

 

header("Location: ".$_SERVER["HTTP_REFERER"]."");

 


Como ves el carrito se vasa en la inyección de los datos a una sesión que crearemos que se llamará "carrito" y para finalizar lo que realizamos es un "header" dando un paso atrás. 

Con este paso ya tendremos nuestro carrito de compras con php funcionando pero ahora nos queda mostrar los datos de forma rápida, entonces tendremos que añadir a nuestros "index.php" las siguiente líneas.

 

 

if(isset($_SESSION["carrito"])){

$carrito_mio=$_SESSION["carrito"];

}

 

// contamos nuestro carrito

if(isset($_SESSION["carrito"])){

    for($i=0;$i<=count($carrito_mio)-1;$i ++){

        if(isset($carrito_mio[$i])){

        if($carrito_mio[$i]!=NULL){

        if(!isset($carrito_mio["cantidad"])){$carrito_mio["cantidad"= "0";}else{ $carrito_mio["cantidad"= $carrito_mio["cantidad"];}

        $total_cantidad = $carrito_mio["cantidad"];

    $total_cantidad ++ ;

    if(!isset($totalcantidad)){$totalcantidad = "0";}else{ $totalcantidad = $totalcantidad;}

    $totalcantidad += $total_cantidad;

    }}}

}

 

    //declaramos variables

     if(!isset($totalcantidad)){$totalcantidad = "";}else{ $totalcantidad = $totalcantidad;}

 


Aquí lo hemos realizado es iniciar el carrito de compras php y mostrar el total de artículos que tiene añadidos.
Con lo cual tendremos que añadir una línea donde queramos mostrar este dato con así.

 

 echo $totalcantidad;

 


Ahora lo que queremos hacer es mostrar el carrito.
En mi caso lo e insertado en un MODAL y os presento como quedaría el código.

 

 

<div class="modal fade" id="modal_cart" tabindex="-1"  aria-hidden="true">

  <div class="modal-dialog">

    <div class="modal-content">

      <div class="modal-header">

        <h5 class="modal-title" id="exampleModalLabel">Mi carritoh5>

        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">button>

      div>

      <div class="modal-body">

   

   

            <div class="modal-body">

                <div>

                    <div class="p-2">

                        <ul class="list-group mb-3">

                            

                            if(isset($_SESSION["carrito"])){

                            $total=0;

                            for($i=0;$i<=count($carrito_mio)-1;$i ++){

                                if(isset($carrito_mio[$i])){

                                if($carrito_mio[$i]!=NULL){

                            ?>

                            <li class="list-group-item d-flex justify-content-between lh-condensed">

                                <div class="row col-12" >

                                    <div class="col-6 p-0" style="text-align: left; color: #000000;"><h6 class="my-0">Cantidad:  echo $carrito_mio[$i]["cantidad"?> :  echo $carrito_mio[$i]["titulo"];  ?>h6>

                                    div>

                                    <div class="col-6 p-0"  style="text-align: right; color: #000000;" >

                                    <span class="text-muted"  style="text-align: right; color: #000000;"> echo $carrito_mio[$i]["precio"* $carrito_mio[$i]["cantidad"];    ?> €span>

                                    div>

                                div>

                            li>

                            

                            $total=$total + ($carrito_mio[$i]["precio"* $carrito_mio[$i]["cantidad"]);

                            }

                            }

                            }

                            }

                            ?>

                            <li class="list-group-item d-flex justify-content-between">

                            <span  style="text-align: left; color: #000000;">Total (EUR)span>

                            <strong  style="text-align: left; color: #000000;">

                            if(isset($_SESSION["carrito"])){

                            $total=0;

                            for($i=0;$i<=count($carrito_mio)-1;$i ++){

                                if(isset($carrito_mio[$i])){

                            if($carrito_mio[$i]!=NULL){

                            $total=$total + ($carrito_mio[$i]["precio"* $carrito_mio[$i]["cantidad"]);

                            }

                            }}}

                            if(!isset($total)){$total = "0";}else{ $total = $total;}

                            echo $total; ?> €strong>

                            li>

                        ul>

                    div>

                div>

            div>

           

 

      div>

      <div class="modal-footer">

     

      <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cerrarbutton>

        <a type="button" class="btn btn-primary" href="../Carrito de compra paso 1/borrarcarro.php">Vaciar carritoa>

        <a type="button" class="btn btn-success" href="../Carrito de compra paso 2/index.php">Continuar pedidoa>

      div>

    div>

  div>

div>

 

 



Con todo esto lo que hacemos en mostrar los datos de nuestro carrito en el modal para que sepas en todo momento que y cuantos artículos tienes añadidos a tu carrito de compras php.
Y por último lo que queremos es borrar nuestro carrito entonces solo tendremos que irnos a "borrarcarro.php" y aquí añadir las siguiente líneas.

 

session_start();

header("Location: ".$_SERVER["HTTP_REFERER"]."");

unset($_SESSION["carrito"]);

 


Y con todo esto ya tendremos nuestro carrito funcionando completamente,
A continuación te dejo el enlace para que descargues todo este contenido además de la demostración para que veas el funcionamiento del mismo.


--------------------------------------------------------------------------
💾Descarga todo el contenido

Descargar
--------------------------------------------------------------------------

Demostración
Demo


© Copyright. Todos los derechos reservados.