sql >> Databasteknik >  >> RDS >> Mysql

Infoga formulärmatrisdata i MySQL med PHP

Att använda PDO-objekt skulle göra detta enklare, mysql_ är legacy i alla fall:

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

du kan göra ytterligare inmatningskontroll med php innan du skickar något till sql via:

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

PDO är mycket enklare att använda och förstå IMO

UPPDATERING:

självstudier om SUB

UPPDATERING #2:

För extra funktionalitet med arrayer per dag kan du göra:

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

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

Sedan kan du komma åt fältet genom att:

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

Efter det kan du beskära din databas hur du vill. Du kan ha en enda tabell med alla värden och redigera dina val för att visa efter anställd eller dag eller w/e. Du kan också ha en tabell för varje anställd och sedan ta från dessa tabeller och visa data hur du vill.




  1. php:sessionen fungerar inte när den körs live på servern

  2. Hur man får tag på Amazon MySQL RDS-certifikat

  3. Infoga uttalande med där klausul inte körs på nodejs mysql

  4. 8 sätt att lägga till en timme till en Datetime i MariaDB