sql >> Databasteknik >  >> RDS >> Mysql

Lägga upp ett formulär med valfria och obligatoriska fält

Låt oss säga att jag har fälten name , email , note där de två första krävs och den sista inte.

Här är ett sätt att göra det:

<?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";
    }
}

För note Jag använde en ternär operator:

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

Vilket i grunden är en one liner if/else, som kunde ha skrivits som:

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

Se också till att du sanerar dina data i ditt fall med mysql_real_escape_string för att förhindra SQL-injektion.



  1. Returnera ID på INSERT?

  2. Kan jag få tillbaka standardvärden för kolumnnamn i en MySQL-tabell?

  3. Echo booleskt fält som ja/nej eller andra värden

  4. Kunde inte ansluta:Förlorade anslutningen till MySQL-servern vid "läsning av initialt kommunikationspaket", systemfel:0