sql >> Databáze >  >> RDS >> Mysql

Vkládání hodnot zaškrtávacích políček do databáze MySQL pomocí PHP

Zaškrtávací políčka se zobrazí pouze tehdy, když jsou zaškrtnuta. Pokud tedy zaškrtávací políčko není zaškrtnuté, nezobrazí se v $_POST . Také byste obecně neměli dávat žádné hodnoty zaškrtávacím políčkům. Místo toho použijte názvy k rozlišení mezi nimi.

V databázi obvykle reprezentuji zaškrtávací políčka s tinyinty a ukládám 1 pro zaškrtnuté a 0 pro nezaškrtnuté.

// 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;

Všimněte si také, že html vyžaduje, aby ID byla jedinečná. Nemůžete tedy mít více prvků se stejným ID. A měli byste dezinfikovat své vstupy, abyste zabránili vkládání SQL. Použijte mysql_real_escape_string() na uživatelských vstupech, které jsou v databázi.

Aktualizovat

Hlavním problémem je, že v dotazu chybí ') ' na posledním řádku. Dotaz by měl vypadat takto

$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);

Všimněte si koncovky ') “ na posledním řádku dotazu. Všimněte si také, že vytvoření dotazu takto, v proměnné, vám umožní vytvořit výstup vytvořeného dotazu, takže můžete vidět, co přesně je odesláno do MySQL, a také můžete svůj dotaz otestovat v jiném prostředí (tj. v phpmyadmin nebo jakékoli jiné administraci databáze nástroj).




  1. mySQL dotaz - zobrazí nejoblíbenější položku

  2. Jak sloučím dva nebo více řádků na základě jejich cizího klíče?

  3. Jak přejmenovat dvě tabulky v jedné atomické operaci v MySQL

  4. Pomocí příkazu like s $wpdb->připravte zobrazení hashů tam, kde jsou zástupné znaky