Wie füge ich mehrere checkbox Werte in eine Tabelle?
Ich kann nicht scheinen zu finden, oder herauszufinden, eine funktionierende Lösung zu legen, mehrere checkbox Werte aus einem Formular in eine Tabelle. Die schließt ich gekommen bin, ist das einfügen der Wert lediglich eine checkbox Wert in eine Tabelle. Freundlich darauf hinweisen, wie ich einfügen kann, mehrere checkbox Werte und nicht bloß eine.
Finden unten, was ich habe, so weit:
Meine form:
<html>
<body>
<form method="post" action="chk123.php">
Flights on: <br/>
<input type="checkbox" name="Days" value="Daily">Daily<br>
<input type="checkbox" name="Days" value="Sunday">Sunday<br>
<input type="checkbox" name="Days" value="Monday">Monday<br>
<input type="checkbox" name="Days" value="Tuesday">Tuesday <br>
<input type="checkbox" name="Days" value="Wednesday">Wednesday<br>
<input type="checkbox" name="Days" value="Thursday">Thursday <br>
<input type="checkbox" name="Days" value="Friday">Friday<br>
<input type="checkbox" name="Days" value="Saturday">Saturday <br>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
Meiner php-Datei zu Lesen und legen Sie die Werte in eine Tabelle:
<?php
//Make a MySQL Connection
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$checkBox = $_POST['Days'];
if(isset($_POST['submit']))
{
for ($i=0; $i<sizeof($checkBox); $i++)
{
$query="INSERT INTO example (orange) VALUES ('" . $checkBox[$i] . "')";
mysql_query($query) or die (mysql_error() );
}
echo "Complete";
}
?>
- jeder Aufruf von mysql_query ist teuer, betrachten die Zusammenlegung der Abfrage einer einzelnen insert-durch Verkettung der () nach Werten. wie ('a'), ('b'), ('c'), ...
- Alle
mysql_*()
Funktionen sind offiziell deprecated (nicht mehr unterstützt/gepflegt) und wird, beseitigt in der Zukunft. Aktualisieren Sie Ihren code mit PDO oder MySQLi, um sicherzustellen, dass zukünftige Funktionalität. Auch dein code ist anfällig für SQL-injection.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie
als array.
Hinzufügen
[]
alle NamenDays
und die Arbeit auf php mit diesem wie ein array.Nachdem es, können Sie
INSERT
Werte in verschiedenen Spalten der db, oder verwenden Sieimplode
und speichern der Werte in einer Spalte.Nicht getestet, aber Sie können versuchen, wie dieses. Vergessen Sie nicht, ersetzen Sie
mysql
mitmysqli
.INSERT INTO example (column1, column2, ...) VALUES ($_POST['Days'][0], $_POST['Days'][1], ...)
Müssen Sie deklarieren Sie das array in den HTML-Code über
Außerdem können Sie mehrere Elemente mit einer Abfrage wie dieser
Beachten Sie auch, dass
mysql_*
Funktionen sind offiziell veraltet und daher sollte nicht verwendet werden in neuem code. Sie können PDO oder MySQLi statt. Sehen diese Antwort auf SO für weitere Informationen.Ich denke, das sollte funktionieren .. 🙂