Maison > base de données > tutoriel mysql > Comment insérer efficacement plusieurs données de tableaux de cases à cocher et de zones de texte dans une base de données MySQL ?

Comment insérer efficacement plusieurs données de tableaux de cases à cocher et de zones de texte dans une base de données MySQL ?

DDD
Libérer: 2024-11-28 06:37:17
original
930 Les gens l'ont consulté

How to Efficiently Insert Multiple Checkbox and Textbox Array Data into a MySQL Database?

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" />
Copier après la connexion

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;
}
Copier après la connexion

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];
}
Copier après la connexion

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();
}
Copier après la connexion

Conseils supplémentaires :

  • Évitez de coder en dur les prix dans le HTML. Au lieu de cela, récupérez-les de la base de données pendant le traitement du formulaire.
  • Assurez-vous que la connexion à la base de données est ouverte à l'aide de la même API (MySQLi ou PDO) tout au long du code.
  • Utilisez exécuter() pour exécuter les éléments préparés. déclarations au lieu de mysql_query, qui fait partie de l'ancienne API MySQL.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal