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

Odeslání formuláře s volitelnými a povinnými poli

Řekněme, že mám pole name , email , note kde první 2 jsou povinné a poslední nikoli.

Zde je jeden způsob, jak to udělat:

<?php
$error = array();
if (!isset($_POST['name']))
{
    $error[] = "The field name was not filled!";
}

if (!isset($_POST['email']))
{
    $error[] = "The field email was not filled!";
}

if (sizeof($error) == 0)
{
    // insert the data
    $query = sprintf("INSERT INTO users VALUES ('%s', '%s', '%s')",
                     mysql_real_escape_string($_POST['name']),
                     mysql_real_escape_string($_POST['email']),
                     mysql_real_escape_string((isset($_POST['note']) ? $_POST['note'] : '')));

    $result = do_query($query);
    echo "<p>¡El laboratorio ha sido añadido exitosamente!</p>";
}
else
{
    // print the error
    foreach ($error as $msg)
    {
        echo $msg, "<br>\n";
    }
}

Pro note Použil jsem ternární operátor:

isset($_POST['note']) ? $_POST['note'] : ''

Což je v podstatě jedna vložka if/else, která by mohla být napsána jako:

if (isset($_POST['note']))
{
    $note = $_POST['note'];
}
else
{
    $note = '';
}

Také se ujistěte, že jste svá data dezinfikovali pomocí mysql_real_escape_string abyste zabránili vkládání SQL.



  1. Jak zřetězit řetězce na serveru SQL pomocí CONCAT()

  2. Jak mohu udržovat relace PHP ve více doménách na stejném serveru?

  3. Jak používat podmínku BETWEEN pomocí hlavního dotazu a dílčích dotazů

  4. Může být vnořený SP MySql úzkým hrdlem?