MySQL und PHP mehrere Checkliste db einfügen
Ich versuche, den Wert einfügen, der diese mehrfach-Checkliste in die Spalte db. Dieser code funktioniert nicht. Kann mir jemand vor Ort das problem?
Meine Datenbank besteht aus einer Tabelle namens "Farben" und einer Spalte "Farbe".
<?php
//connect to database
require "mysql_connect.php";
?>
<?php
//get value from the form
$color = $_POST['color'];
foreach($_POST['color'] as $colors){
$insert = mysql_query("INSERT INTO colors (color) VALUES ('$color')");
}
?>
<form action="add_color.php" method="post" enctype="multipart/form-data" name="colorform" id="colorform">
<input type="checkbox" name="color[]" value="black" /> Black
<input type="checkbox" name="color[]" value="red" /> Red
<input type="checkbox" name="color[]" value="blue" /> Blue
<input type="checkbox" name="color[]" value="white" /> White
<input name="submit" type="submit" value="Add color" />
</form>
Dank
- Sie verwechseln sich selbst mit $Farbe und $Farben.
- Versuchen Sie, stecken Sie in die 4 verschiedenen Tabellen (
$colors
)? Und wo ist der$color
Wert definiert? Es scheint, dass Sie möglicherweise gerade Ihre Variablen-Namen Durcheinander.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein schöner Weg, um Ihre Farben
if (isset($_POST['Farbe']))
Diese Bedingung ist wichtig, weil es verhindert, dass eine Indizierung Fehler bei der array leer ist
$Farben=array();
Auch, tun, deklarieren Sie Ihre Variablen zu verhindern, dass sich nicht deklarierten Variablen, die zuvor in Ihrem code passiert dies, wenn der Benutzer nicht geben Sie jede Farbe
Denken Sie daran, die PHP-server-Seite und damit zu Fehlern, die auf PHP Schlupflöcher für Angriffe. Versuchen Sie, darüber zu Lesen, PHP Best Practices, die Ihre sehr wichtiger
Hofft, es hilft 🙂
Ich würde auch vorschlagen, dass Sie bereinigen Ihre aus-Eingänge vor dem einfügen in Ihre Datenbank. Sie nicht erwähnen, was geben Sie Ihre Spalte Farbe ist, könnte ein Konflikt auch dort.
Wenn Sie sagen
INSERT INTO $colors
-- ist es das, was du meinst? Den Tabellennamen variabel ist? Sie sollte wohl eine richtige Tabelle den Namen$colors
.Zusätzlich, die Sie verwendet haben, $Farbe, die sehe ich nicht definiert, Sie meinte wahrscheinlich verwenden, $Farben, so sollte es eher so:
Überprüfen Sie Ihren return-Wert, um zu sehen, welche Fehler sind Sie immer:
Ändern:
Auch, bitte überprüfen Sie den Rückgabewert der insert -, vielleicht sind Sie immer Fehler?
Erste offensichtliche problem war, dass der name der Tabelle wurde ersetzt mit der Farbe, weil der variable, ist das der gewünschte Effekt?
Hast du deine Variablen nach hinten, SQL-syntax Fehler, SQL-injection-Schwachstellen, und insgesamt mangelnde Fehlerbehandlung
Benutzen Sie $Farben (mit einem S) zu speichern, die einzelnen Farben, aber dann setzen Sie $Farbe, welcher ein array ist.
Nie davon ausgehen, dass eine Abfrage schaffte. Hätte man das absolute minimum
or die(...)
Fehlerbehandlung, du hast gesehen, warum Ihre Abfragen versagten:var_dump($_POST)
irgendwo und sehen, was auftaucht.