Je ne peux pas trouver où est le problème à mon code. Il n'envoie que des commandes uniques à la base de données. Quand je commande dans mon panier 2 ou plus que des articles, il envoie seulement la dernière commande. Je n'ai aucune idée de comment je peux changer ou ajouter de la syntaxe dans mon code.MySQLi et PHP envoie uniquement des produits uniques sur la base de données
Voici mon code dans checkout.php
<?php
session_start();
echo '<h3>Your Order</h3>';
$current_url = base64_encode($url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
if(isset($_SESSION['products'])){
echo '<ol>';
echo '<form action="checkout_with_us.php" method="POST">';
$total = 0;
$cart_items = 0;
foreach($_SESSION['products'] as $cart_itm){
$product_code = $cart_itm['code'];
$results = $mysqli->query("SELECT product_name,product_desc,price FROM products WHERE product_code='$product_code' LIMIT 1");
$obj = $results->fetch_object();
echo '<li>';
echo 'Price: '.$currency.$obj->price;
echo '<h4>'.$obj->product_name.'(Code: '.$product_code.')</h4>';
echo 'Qty: '.$cart_itm['qty'];
echo '</li>';
$subtotal = ($cart_itm['price'] * $cart_itm['qty']);
$total = ($total + $subtotal);
$cart_items++;
echo '<input type="hidden" name="item_name" value="'.$obj->product_name.'">';
echo '<input type="hidden" name="item_desc" value="'.$obj->product_desc.'">';
echo '<input type="hidden" name="item_qty" value="'.$cart_itm["qty"].'">';
echo '<input type="hidden" name="item_code" value="'.$product_code.'">';
}
echo '<strong>Sub Total: '.$currency.$total.'</strong>';
echo '<input type="hidden" name="price" value="'.$total.'">';
echo '</ol>';
}
//Here is the information of the customer
echo 'Firstname: <input type="text" name="firstname"><br />';
echo 'Lastname: <input type="text" name="lastname"><br />';
echo 'Email: <input type="text" name="email"><br />';
echo '<input type="submit" value="Send Step">';
echo '</form>';
?>
Et voici mes codes checkout.with_us.php. Ce code est le pont pour envoyer les informations à la base de données.
<?php
session_start();
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$order_name = $_POST['item_name'];
$order_code = $_POST['item_code'];
$order_qty = $_POST['item_qty'];
$sub_total = $_POST['price'];
$conn = mysqli_connect('localhost','root','','sampsix')or die('Could not connect');
$query = "INSERT INTO `sampsix`.`orders`(`firstname`,`lastname`,`email`,`OrderName`,`OrderCode`,`OrderQty`,`SubTotal`) VALUES('$firstname','$lastname','$email','$order_name','$order_code','$order_qty','$sub_total')";
mysqli_query($conn,$query);
mysqli_close($conn);
header('Location: checkout.php');
?>
Vous a publié ce billet déjà http://stackoverflow.com/q/25821058/ –
Oui, monsieur. Je n'ai toujours pas de réponse pour m'aider :( –
si vous voulez avoir plusieurs valeurs dans un '$ _POST ['xxx']' vous devez le configurer comme un tableau: '$ _POST ['xxx'] []' – lexith