DHTML - [Ayuda] Guardar contenido de $_SESSION['carrito'] en una base de datos

 
Vista:
sin imagen de perfil
Val: 7
Ha mantenido su posición en DHTML (en relación al último mes)
Gráfica de DHTML

[Ayuda] Guardar contenido de $_SESSION['carrito'] en una base de datos

Publicado por Derek (3 intervenciones) el 10/01/2017 05:52:29

Buenas a todos


Estoy trabajando en una tienda en linea en php pero tengo un problema
Hice un carrito de compras(vi un video) y me funciono y todo

pero quiero hacer un finalizar compra
para ello quiero que los productos(solo el nombre de los productos) del carrito se guarden en una tabla en mi base de datos

cree una tabla llamada pedidos que tiene:
id - nombre - email - direccion - telefono - pago - productos - total
Asi esta estructurada:
5874682f4d5d4_th-Sin-titulo

pero no me agrega los nombres de los productos que ordeno el usuario

Este es el codigo que utilizo para ver lo que contiene el carrito de compras:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
if(!empty($_SESSION["shopping_cart"]))
{
$total = 0;
foreach($_SESSION["shopping_cart"] as $keys => $values)
{
?>
<tbody>
    <tr>
        <td class="cart_description">
            <h4><?php echo $values["item_name"]; ?></h4>
            <p>Producto ID: <?php echo $values["item_id"]; ?></p>
        </td>
        <td class="cart_price">
            <p>Q. <?php echo $values["item_price"]; ?></p>
        </td>
        <td class="cart_quantity">
            <div class="cart_quantity_button">
                <input class="cart_quantity_input" value="<?php echo $values["item_quantity"]; ?>" autocomplete="off" size="2" disabled>
            </div>
        </td>
        <td class="cart_total">
            <p class="cart_total_price">Q. <?php echo number_format($values["item_quantity"] * $values["item_price"], 2); ?></p>
        </td>
        <td class="cart_delete">
           <br>
            <a class="cart_quantity_delete" href="index.php?action=delete&id=<?php echo $values["item_id"]; ?>"><i class="fa fa-times"></i></a>
        </td>
    </tr>
</tbody>
<?php
$total = $total + ($values["item_quantity"] * $values["item_price"]);
}
?>
</table>
<hr>
    <div class="col-sm-6">
        <div class="total_area">
            <ul>
                <li>Total <span>Q. <?php echo number_format($total, 2); ?></span></li>
            </ul>
            <a href="check-out.php" class="btn btn-default check_out">Comprar</a>
        </div>
    </div>
<?php
}
?>

Espero me puedan ayudar
Llevo dias buscando una solucion pero no me salen

Sin-titulo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 16
Ha mantenido su posición en DHTML (en relación al último mes)
Gráfica de DHTML

[Ayuda] Guardar contenido de $_SESSION['carrito'] en una base de datos

Publicado por xve (26 intervenciones) el 10/01/2017 14:59:54
Hola Derek, por lo que veo, la variable de sesión tiene un array con las compras del usuario...

La manera de guardarlos en la base de datos, es muy similar a como lo estas mostrando, es decir, recorres todos los valores, y crear el insert en la base de datos para cada producto. algo así:

1
2
3
4
5
6
7
8
9
10
<?php
if(!empty($_SESSION["shopping_cart"]))
{
	foreach($_SESSION["shopping_cart"] as $keys => $values)
	{
		$sql="INSERT INTO pedidos VALUES (null,'".$values["nombre"]."', ......");
		....
	}
}
?>

En VALUES tienes que poner todos los valores para añadir a la tabla "pedidos".
Luego te faltara ejecutar el $sql para añadirlo a MySQL, que no se como te conectas a mysql para ponerte el ejemplo.

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 7
Ha mantenido su posición en DHTML (en relación al último mes)
Gráfica de DHTML

[Ayuda] Guardar contenido de $_SESSION['carrito'] en una base de datos

Publicado por Derek (3 intervenciones) el 10/01/2017 19:40:42
Hola Xve
Pues tengo asi para insertar los datos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
	$nombre=$_POST['nombre'];
	$email=$_POST['email'];
	$direccion=$_POST['direccion'];
	$telefono=$_POST['telefono'];
	$pago=$_POST['pago'];
	$total=$_POST['total'];
if(!empty($_SESSION["shopping_cart"]))
{
	foreach($_SESSION["shopping_cart"] as $keys => $values)
	{
$conect=mysqli_connect("localhost","root","","compras");
mysqli_query($conect,"INSERT INTO pedidos (`id`, `nombre`, `email`, `direccion`, `telefono`, `pago`, `productos`, `total`) VALUES ('$nombre', '$email', '$direccion', '$telefono', '$pago', '".$values['item_name']."', '$total');");
 
echo '<p class="alert alert-success">Gracias por comprar en TuPagina: '.$nombre.'</p>';
	}
}
?>

Eso ya es la parte final donde el usuario pone sus datos y finaliza la compra
pero solo me inserta todo los post menos los nombres de los productos que ordeno
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 16
Ha mantenido su posición en DHTML (en relación al último mes)
Gráfica de DHTML

[Ayuda] Guardar contenido de $_SESSION['carrito'] en una base de datos

Publicado por xve (26 intervenciones) el 10/01/2017 20:51:16
Hola Derek, si pones (`id`....) en VALUES también tienes que indicarlo, ya sea con NULL si es autoincremental o el valor que quieras poner.

Tienen que haber la misma cantidad de valores antes del VALUES y después.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 7
Ha mantenido su posición en DHTML (en relación al último mes)
Gráfica de DHTML

[Ayuda] Guardar contenido de $_SESSION['carrito'] en una base de datos

Publicado por Derek (3 intervenciones) el 11/01/2017 03:45:15
Muchas Gracias!!!
Si me funciono!!

Pero tengo una pregunta mas!!!

Como puedo hacer para que Se separen por categorias por decirlo asi

Pedido de "$nombre"
"lo que pidio"
Pedido de "$nombre"
"lo que pidio"

Como puedo hacer esas separaciones?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar