Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Inserindo dados de matriz de formulário no MySQL com PHP


Usar o objeto PDO tornaria isso mais fácil, mysql_ é legado de qualquer maneira:
$db = new PDO($hostname,$username,$password);


$qry = "INSERT INTO table (
            Date,
            FirstName,
            LastName,
            StraightHours,
            OvertimeHours,
            PremiumHours,
            TotalHours,
            PerDiem
        )
        VALUES (:date, :firstname, :lastname, :straighthours, :overtimehours, :premiumhours, :totalhours, :perdiem)"; // colon variables will be bound to actual variable

$statement = $db->prepare($query); //prevents injection

// binds variables to place holder in query
$statement->bindValue(':firstname', $firstname);
$statement->bindValue(':lastname', $lastname);
$statement->bindValue(':straighthours', $straighthours);
$statement->bindValue(':overtimehours', $overtimehours);
$statement->bindValue(':premiumhours', $premiumhours);
$statement->bindValue(':totalhours', $totalhours);
$statement->bindValue(':perdiem', $perdiem);

$statement->execute();
$statement->closeCursor();

você pode fazer mais verificações de entrada com php antes de passar qualquer coisa para o sql via:
trim(strip_tags(htmlentities($firstname)));

PDO é muito mais simples de usar e entender IMO

ATUALIZAR:

tutoriais sobre PDO

ATUALIZAÇÃO #2:

Para funcionalidade adicional com matrizes por dia, você pode fazer:
<input type="text" name="firstname1">

// do this for all fields then
$workingday1 = array();
$workingday1['firstname'] = $_GET['firstname1'];
// etc. for all the other fields

Então você pode acessar o campo por:
$workingday1 = $_GET['workingDay1']; // or post or however you want to pass it
$firstname = $workingday['firstname'];

Depois disso, você pode podar seu banco de dados como quiser. Você pode ter uma única tabela com todos os valores e editar suas seleções para exibir por funcionário ou dia ou w/e. Você também pode ter uma tabela para cada funcionário e, em seguida, pegar essas tabelas e exibir os dados como quiser.