Insérer plusieurs tableaux de cases à cocher et de zones de texte dans une base de données MySQL
Insérer plusieurs tableaux de cases à cocher et de zones de texte dans une base de données MySQL peut être une tâche délicate. Cela est particulièrement vrai lorsque les cases à cocher ne sont soumises que si elles sont cochées. Voici une explication détaillée de la façon d'y parvenir :
Formulaire HTML
Assurez-vous que chaque case à cocher a un index explicite dans son attribut de nom :
<input tabindex="1" name="checkbox[0]" type="checkbox" value="17" />
De plus, assurez-vous que les tableaux de zones de texte correspondent aux cases à cocher en ayant le même index dans leur nom attributs.
Script PHP
1. Gestion des cases à cocher :
Utilisez foreach pour parcourir le tableau de cases à cocher et indexer chaque valeur avec son index correspondant :
foreach($_POST['checkbox'] as $i => $check) { $checkArray[$i] = $check; }
2. Combinaison de tableaux :
Étant donné que les index du tableau de cases à cocher peuvent ne pas s'aligner avec les autres tableaux, vous devez les combiner manuellement. Utilisez une autre boucle foreach pour parcourir le tableau de cases à cocher et combiner les valeurs avec les valeurs correspondantes des autres tableaux :
foreach($checkArray as $i => $check) { $itemArray[$i] = $_POST['item'][$i]; $quantityArray[$i] = $_POST['quantity'][$i]; }
3. Insertion dans la base de données :
Maintenant que vous avez correctement combiné les tableaux, vous pouvez effectuer l'insertion dans la base de données. Utilisez une instruction préparée avec bind_param pour éviter l'injection SQL :
$stmt = $conn->prepare("INSERT INTO purchases (Product, Quantity, Price) VALUES (?, ?, ?)"); $stmt->bind_param("sis", $product, $quantity, $price); foreach ($itemArray as $i => $product) { $quantity = $quantityArray[$i]; $price = $_POST['price'][$i]; // Get the price from the HTML $stmt->execute(); }
Conseils supplémentaires :
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!