In diesem Szenario besteht das Hauptziel darin, Daten aus mehreren Kontrollkästchen- und Textfeld-Arrays effizient in eine MySQL-Datenbank einzufügen. Lassen Sie uns zunächst die spezifischen Herausforderungen ansprechen, die im vorgestellten Code auftreten.
Das erste Problem betrifft die Anzeige von Kontrollkästchendaten. Der Originalcode konnte nicht markierte Kontrollkästchen nicht anzeigen, was dazu führte, dass alle Kontrollkästchenoptionen als ausgewählt angezeigt wurden. Dies liegt an der fehlerhaften Verarbeitung der Kontrollkästchenwerte.
Das zweite Problem besteht darin, dass die Daten nicht ordnungsgemäß in die Datenbank eingefügt wurden. Trotz erfolgreicher Verbindung zur Datenbank wurden keine Daten geschrieben. Dies wird durch die falsche Verwendung der Array-Indizierung und die unsachgemäße Verwendung der MySQLi- und mysql_query-APIs verursacht.
Um diese Probleme zu beheben, schlagen wir die folgenden Codeänderungen vor:
<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(); } } }
Durch die Implementierung dieser Änderungen sollte das Skript nun Kontrollkästchendaten korrekt verarbeiten, eine sichere Dateneinfügung durchführen, dynamische Preiswerte aus der Datenbank abrufen und genaue Ergebnisse liefern. Denken Sie daran, immer sicherzustellen, dass Benutzereingaben ordnungsgemäß bereinigt werden, bevor Sie Datenbankvorgänge ausführen, um potenzielle Sicherheitslücken zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie kann ich Daten aus mehreren Kontrollkästchen- und Textfeld-Arrays effizient in eine MySQL-Datenbank einfügen und gleichzeitig nicht aktivierte Kontrollkästchen verarbeiten und Datenmanipulation verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!