Mysql
 sql >> Base de données >  >> RDS >> Mysql

Insertion de données de tableau de formulaire dans MySQL avec PHP

L'utilisation d'un objet PDO rendrait cela plus facile, mysql_ est de toute façon hérité :

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

vous pouvez effectuer une vérification supplémentaire des entrées avec php avant de transmettre quoi que ce soit à sql via :

trim(strip_tags(htmlentities($firstname)));

PDO est beaucoup plus simple à utiliser et à comprendre IMO

MISE À JOUR :

tutoriels sur PDO

MISE À JOUR #2 :

Pour plus de fonctionnalités avec des tableaux par jour, vous pouvez faire :

<input type="text" name="firstname1">

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

Vous pouvez ensuite accéder au champ en :

$workingday1 = $_GET['workingDay1']; // or post or however you want to pass it
$firstname = $workingday['firstname'];

Après cela, vous pouvez élaguer votre base de données comme bon vous semble. Vous pouvez avoir un seul tableau avec toutes les valeurs et modifier vos sélections pour les afficher par employé, par jour ou par semaine. Vous pouvez également avoir une table pour chaque employé, puis récupérer ces tables et afficher les données comme vous le souhaitez.