Dans ce scénario, l'objectif principal est d'insérer efficacement les données de plusieurs tableaux de cases à cocher et de zones de texte dans une base de données MySQL. Pour commencer, abordons les défis spécifiques rencontrés dans le code présenté.
Le premier problème concerne l'affichage des données des cases à cocher. Le code d'origine n'a pas réussi à indiquer les cases à cocher non cochées, ce qui fait que toutes les options de case à cocher apparaissent comme sélectionnées. Cela est dû à une gestion erronée des valeurs des cases à cocher.
Le deuxième problème est que les données n'ont pas été correctement insérées dans la base de données. Malgré la connexion réussie à la base de données, aucune donnée n'était en cours d'écriture. Ceci est dû à une utilisation incorrecte de l'indexation des tableaux et à une mauvaise utilisation des API MySQLi et mysql_query.
Pour résoudre ces problèmes, nous proposons les modifications de code suivantes :
<form method="POST"> <input type="hidden" name="item[]" value="cupcake"> <input type="text" name="items" value="cupcake" readonly><br> <b>Price :</b> <span name="price" value="3.00">.00</span><br> Quantity: <input tabindex="1" name="quantity[]" min="0" max="5" type="number" class="quantity" value="1" /><br> <input tabindex="1" name="checkbox[0]" type="checkbox" value="17" /><span>Add to Cart</span></label></div></div></td><br> <input type="hidden" name="item[]" value="cake"> <input type="text" name="items" value="cake" readonly><br> <b>Price :</b> <span name="price" value="20.00">.00</span><br> Quantity: <input tabindex="1" name="quantity[]" min="0" max="5" type="number" class="quantity" value="1" /><br> <input tabindex="1" name="checkbox[1]" type="checkbox" value="20" /><span>Add to Cart</span></label></div></div></td><br> <input type="submit" name = "insertBT"><br> </form>
if(isset($_POST['insertBT'])) { $conn = new mysqli ($servername, $username, $password, $db); if($conn->connect_error) { die ("Connection Failed : " . $conn->connect_error); } else { $stmt = $conn->prepare("INSERT INTO purchases (Product, Quantity, Price) VALUES (?, ?, ?)"); $stmt->bind_param("sis", $name, $quantity, $price); foreach ($_POST['checkbox'] as $i => $price) { $name = $_POST['name'][$i]; $quantity = $_POST['quantity'][$i]; $stmt->execute(); } } }
En implémentant ces modifications, le script devrait désormais gérer correctement les données des cases à cocher, effectuer une insertion sécurisée des données, récupérer les valeurs de prix dynamiques de la base de données et fournir des résultats précis. N'oubliez pas de toujours vérifier que les entrées de l'utilisateur sont correctement nettoyées avant d'exécuter des opérations sur la base de données afin d'éviter d'éventuelles vulnérabilités de sécurité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!