2015-12-08 21 views
1

對於我的數據庫項目的最後一部分,我們通過修改PHP文件來創建工作的HTML表單。如果你檢查了html表單鏈接,然後檢查我的erd screenshot鏈接,你會看到「pickup/dropoff longitude/latitude」與其餘值不同。 (位置&預訂)如何讓我的HTML/PHP表單正確地插入數據到我的數據庫

此表格在提交時應該將此數據上傳到我創建的在線虛擬數據庫,但我不知道我應該如何執行此操作,因爲它們位於不同的表中。在php文件中這樣做的唯一方法是擁有多個「插入」語句嗎?

HTML Form

ERD

這裏是我創建表,如果需要的話:

CREATE TABLE Customer (
CustomerID INT AUTO_INCREMENT, 
Name VARCHAR(90) NOT NULL, 
Phone VARCHAR(45) NULL, 
CustomerAddress VARCHAR(45) NOT NULL, 
PRIMARY KEY (CustomerID)); 

CREATE TABLE Location (
Address VARCHAR(100) NOT NULL, 
Latitude VARCHAR(45) NULL DEFAULT ' ', 
Longitude VARCHAR(45) NULL, 
PRIMARY KEY (Address)); 


CREATE TABLE Employee (
EmployeeID INT AUTO_INCREMENT, 
Name VARCHAR(90) NOT NULL, 
PRIMARY KEY (EmployeeID)); 


CREATE TABLE Truck (
LicensePlate CHAR(20) NOT NULL, 
color VARCHAR(45) NULL, 
capacity VARCHAR(45) NULL, 
PRIMARY KEY (LicensePlate)); 

CREATE TABLE Shifts (
ShiftTime DATETIME NOT NULL, 
PRIMARY KEY (ShiftTime)); 

CREATE TABLE EmployeeShifts (
DesiredShift DATETIME NOT NULL, 
EmployeeWorking INT NULL, 
DateOfShift DATE, 
PRIMARY KEY(DesiredShift, EmployeeWorking), 
FOREIGN KEY (EmployeeWorking) REFERENCES Employee(EmployeeID), 
FOREIGN KEY (DesiredShift) REFERENCES Shifts(ShiftTime)); 

CREATE TABLE Reservation (
ReservNum INT NOT NULL, 
ReserveDate DATE NULL, 
PickupTime VARCHAR(45) NOT NULL, 
NumOfPassengers INT NULL, 
sheduledTime VARCHAR(45) NULL, 
ActualPickupTime VARCHAR(45), 
ActualTime VARCHAR(45), 
PricePaid VARCHAR(45), 
DriverHourlyRate DECIMAL(7,2) NOT NULL, 
PassEmployeeHourlyRate DECIMAL (7,2) NOT NULL, 
DriverSalary VARCHAR(10), 
PassEmployeeSalary VARCHAR(10), 
Customer_CustomerID INT, 
Truck_LicensePlate char(20) NOT NULL, 
Employee_EmployeeID_Driver INT, 
Location_Address_Pickup VARCHAR(100), 
Employee_EmployeeID_Passenger INT, 
Location_Address_Drop VARCHAR(100), 
PRIMARY KEY (ReservNum), 
FOREIGN KEY (Customer_CustomerID) REFERENCES Customer (CustomerID), 
FOREIGN KEY (Truck_LicensePlate) REFERENCES Truck (LicensePlate), 
FOREIGN KEY (Employee_EmployeeID_Driver) REFERENCES Employee (EmployeeID), 
FOREIGN KEY (Location_Address_Pickup) REFERENCES Location (Address), 
FOREIGN KEY (Employee_EmployeeID_Passenger) REFERENCES Employee (EmployeeID), 
FOREIGN KEY (Location_Address_Drop) REFERENCES Location (Address)); 

如果你指的PHP代碼,這裏是我們給出修改的內容的示例。我還沒有開始這個具體的形式。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> 

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>InsertNewCustomer PHP Page</title> 
    <style type="text/css"> 
     h1 {text-align: center; color: blue} 
     h2 {font-family: Ariel, sans-serif; text-align: left; color: blue} 
     p.footer {text-align: center} 
     table.output {font-family: Ariel, sans-serif} 
    </style> 
</head> 
<body> 
<?php 

    // Connect to the Database 
    try { 
     $pdo = new PDO("mysql:host=localhost;dbname=Goober", 
      'root', 'password'); 
     // $pdo->setAttribute(PDO::ATTR_ERRMODE, 
     //   PDO::ERRMODE_EXCEPTION); 
    } catch (PDOException $e) { 
      echo 'PDO Connection failed: ' . $e->getMessage(); 
    } 

    // Create short variable names 
    $Driver = $_POST["Driver"]; 
    $DateOfShift = $_POST["DateOfShift"]; 
    $DesiredShift = $_POST["DesiredShift"]; 


    // Create SQL statement to INSERT new data 
    $SQLINSERT = "INSERT INTO EmployeeShifts (Driver,DateOfShift,DesiredShift)"; 
    $SQLINSERT .= "VALUES('$Driver','$DateOfShift', '$DesiredShift')"; 

    // Prepare the statement to execute 
    $sqlprep = $pdo->prepare($SQLINSERT); 


    // Test existence of result 
    echo "<h1> 
      Goober EmployeeShifts Table 
     </h1> 
     <hr />"; 
    // Test existence of result 
     if ($sqlprep->execute()){ 

     echo "<h2> 
      New Shift Added: 
     </h2> 
     <table> 
      <tr>"; 
      echo "<td>Driver:</td>"; 
      echo "<td>" . $Driver . "</td>"; 
      echo "</tr>"; 
      echo "<tr>"; 
      echo "<td>DateOfShift:</td>"; 
      echo "<td>" . $DateOfShift . "</td>"; 
      echo "</tr>"; 
      echo "<tr>"; 
      echo "<td>DesiredShift:</td>"; 
      echo "<td>" . $DesiredShift . "</td>"; 
      echo "</tr>"; 
     echo "</table><br /><hr />"; 
     } 
     else { 
      exit ("SQL Statement Error: " . $SQL); 
     } 

    // Create SQL statement to read CUSTOMER table data 
    $SQL = "SELECT * FROM EmployeeShifts"; 

// Prepare the statement to execute 
$sqlprep = $pdo->prepare($SQL); 
// Run statement and test existence of recordset 
    if (!$sqlprep->execute()) 
    { 
     exit ("SQL Statement Error: "); 
    } 


?> 
    <!-- Page Headers --> 
    <h1> 
     The Heather Sweeney Designs CUSTOMER Table 
    </h1> 
    <hr /> 
    <h2> 
     CUSTOMER 
    </h2> 
<?php  
    // Table headers 
    echo "<table class='output' border='1'> 
      <tr> 
       <th>Driver</th> 
       <th>DateOfShift</th> 
       <th>DesiredShift</th> 
      </tr>"; 

// Table data 
while($RecordSetRow = $sqlprep->fetch()) 
     { 
     echo "<tr>"; 
     echo "<td>" . $RecordSetRow['Driver'] . "</td>"; 
     echo "<td>" . $RecordSetRow['DateOfShift'] . "</td>"; 
     echo "<td>" . $RecordSetRow['DesiredShift'] . "</td>"; 

     } 
    echo "</table>"; 

?> 
    <br /> 
    <hr /> 
    <p class="footer"> 
     <a href="../HSD/index.html"> 
      Return to Home Page 
     </a> 
    </p> 
    <hr /> 
</body> 

+2

你可以把代碼不只是一個圖片? –

回答

0

不知道你在哪裏得到這個

$SQLINSERT = "INSERT INTO EmployeeShifts (Driver,DateOfShift,DesiredShift)"; 
    $SQLINSERT .= "VALUES('$Driver','$DateOfShift', '$DesiredShift')"; 

但你可以嘗試

$stmt = $pdo->prepare("INSERT INTO EmployeeShifts (Driver,DateOfShift,DesiredShift) VALUES(:Driver,:DateOfShift,:DesiredShift)"; 
$stmt->bindParam(':Driver', $Driver); 
$stmt->bindParam(':DateOfShift', $DateOfShift); 
$stmt->bindParam(':DesiredShift', $DesiredShift); 

$stmt->execute(); 

或只是刪除了抽動「在現有查詢

$SQLINSERT = "INSERT INTO EmployeeShifts (Driver,DateOfShift,DesiredShift)"; 
     $SQLINSERT .= "VALUES($Driver,$DateOfShift, $DesiredShift)"; 
相關問題