Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Einfügen von Kontrollkästchenwerten in die MySQL-Datenbank mit PHP

Checkboxen werden nur gepostet, wenn sie angekreuzt sind. Wenn das Kontrollkästchen also nicht aktiviert ist, erscheint es nicht in $_POST . Außerdem sollten Sie Checkboxen generell keine Werte zuweisen. Verwenden Sie stattdessen Namen, um sie zu unterscheiden.

In der Datenbank stelle ich normalerweise Checkboxen mit Tinyints dar und speichere 1 für aktiviert und 0 für nicht aktiviert.

// If your checkbox name is foo, this will convert it
// into a value that can be stored in the database
$foo = isset($_POST['foo']) ? 1 : 0;

Beachten Sie auch, dass HTML erfordert, dass IDs eindeutig sind. Sie können also nicht mehrere Elemente mit derselben ID haben. Und Sie sollten Ihre Eingaben bereinigen, um eine SQL-Injektion zu verhindern. Verwenden Sie mysql_real_escape_string() auf Benutzereingaben, die in die Datenbank gehen.

Aktualisieren

Das Hauptproblem besteht darin, dass der Abfrage ein ') fehlt ' in der letzten Zeile. Die Abfrage sollte wie folgt aussehen

$query = "INSERT INTO markers (ciudad,
                        zona,address,name,
                        telefono,email,piso,
                        tipo,erasmus,nhabitaciones,
                        plazas,equipHabita,nbanos,
                        salon,cocina,electrodomesticos,
                        garaje,internet,calefaccion,
                        sexo,precio,superficie,otros,
                        fecha,lat,lng)
    VALUES ('{$_POST['ciudad']}','{$_POST['zona']}',
            '{$_POST['address']}','{$_POST['name']}','{$_POST['telefono']}',
            '{$_POST['email']}','{$_POST['piso']}','{$_POST['tipo']}',
            '{$_POST['erasmus']}','{$_POST['nhabitaciones']}',
            '{$_POST['plazas']}','{$equipHabitaF}',
            '{$_POST['nbanos']}','{$equipSalonF}',
            '{$equipCocinaF}','{$equipElectroF}','{$_POST['garaje']}',
            '{$_POST['internet']}','{$_POST['calefaccion']}',
            '{$_POST['sexo']}','{$_POST['precio']}',
            '{$_POST['superficie']}','{$_POST['otrosF']}',
            '{$_POST['fecha']}','{$_POST['lat']}',
            '{$_POST['lng']}')";
mysql_query($query, $link);

Beachten Sie das schließende ') ' in der letzten Zeile der Abfrage. Beachten Sie auch, dass das Erstellen der Abfrage auf diese Weise in einer Variablen es Ihnen ermöglicht, die erstellte Abfrage auszugeben, damit Sie sehen können, was genau an MySQL gesendet wird, und Sie können Ihre Abfrage auch in einer anderen Umgebung testen (z. B. in phpmyadmin oder einer anderen Datenbankverwaltung). Werkzeug).