2015-05-09 39 views
0

將數據插入到第一個表中,但用於獲取ID號的代碼似乎不起作用,並且數據未插入到下兩個表中表。 代碼將運行,並且謝謝消息顯示感謝提交其詳細信息的人員。使用php將數據從表單插入到mysql數據庫中的多個表中

有三頁代碼。連接代碼在一個文件中。處理代碼文件和表單文件。

我不會在這裏包含連接代碼,因爲它工作。

這裏是形式的代碼:

enter code here 

    <form method="post" action="formprocess3.php"> 
    <table> 
      <tr> 
      <td>Customer Details</td> 
      <td>Appointment Preference</td> 
      <td>Cupcake Details</td> 
    </tr> 
    <tr> 
     <td>First Name    
     <input name="FirstName" type="text" id="FirstName" maxlength="20" value="<?php if (isset($_POST['FirstName'])) echo $_POST ['FirstName']; ?>"/> 
       </td> 
     <td>Appointment Date    
       <input name="AppointmentDate" type="date" id="AppointmentDate" maxlength="10" value="<?php if (isset($_POST['AppointmentDate'])) echo $_POST['AppointmentDate']; ?>"/> 
      </td> 
      <td>Size  
    <select name="CupcakeSize" id="CupcakeSize" type="radio" maxlength="5" value="<?php if (isset($_POST['CupcakeSize'])) echo $_POST['CupcakeSize']; ?>"/> 
      <option></option> 
      <option>Small</option> 
      <option>Large</option> 
      </select></td> 
     </tr> 
     <tr> 
     <td>Surname 
      <input name="Surname" type="text" id="Surname" maxlength="20" value="<?php if (isset($_POST['Surame'])) echo $_POST['Surname']; ?>"/></td> 
      <td>Appointment Time 
     <select name="AppointmentTime" type="radio" maxlength="20" value="<?php if (isset($_POST['AppointmentTime'])) echo $_POST ['AppointmentTime']; ?>"/> 

       <option></option> 
       <option>9.30am -10.30am</option> 
       <option>11am - 12pm</option> 
       <option>1.30pm - 2.30pm</option> 
       <option>3pm - 4pm</option> 
       <option>4.30pm - 5.30pm</option> 
       <option>7pm - 8pm</option> 
      </select> 
      </td> 
      <td>Quantity    
      <input type="text" name="Quantity" id="Quantity"/></td> 
      </tr> 
     <tr> 
      <td>Email address 
      <input name="EmailAddress" type="email" id="Email" maxlength="20" value="<?php if (isset($_POST['EmailAddress'])) echo $_POST['EmailAddress']; ?>"/></td> 
      <td>Taster 

      <input name="Taster" type="checkbox" id="Taster"/> 
      </td> 
      <td maxlength="1" type="radio" value="<?php if (isset($_POST['Taster'])) echo $_POST['Taster']; ?>"/> 
        <td>Frosting   
     <select name="CupcakeFrosting" id="CupcakeFrosting" type="radio" maxlength="10" value="<?php if (isset($_POST['CupcakeFrosting'])) echo $_POST['CupcakeFrosting']; ?>"/> 
      <option></option> 
      <option>Strawberry</option> 
      <option>Chocolate</option> 
      <option>Vanilla</option> 
      <option>Coffee</option> 
      <option>Orange</option> 
      <option>Blue</option> 
      <option>Pink</option> 
      <option>Green</option> 
      <option>Red</option> 
      <option>Purple</option> 
      </select></td> 
       </tr> 
       <tr> 
      <td>Postcode    
      <input name="Postcode" type="text" id="Postcode" style="width: 130px; height: 20px" class="auto-style24" maxlength="10" value="<?php if (isset($_POST['Postcode'])) echo $_POST['Postcode']; ?>"/></td> 
     <td>Cake wanted by 
     <input name="CakeWantedBy" type="date" id="CakeWantedBy" maxlength="10" value="<?php if (isset($_POST['CakeWantedBy'])) echo $_POST['CakeWantedBy']; ?>"/> 
       </td> 
      <td> 
      <select name="CupcakeFlavour" id="Flavour" type="radio" maxlength="10" value="<?php if (isset($_POST['CupcakeFlavour'])) echo $_POST['CupcakeFlavour']; ?>"/> 
      <option></option> 
      <option>Banana</option> 
      <option>Caramel</option> 
      <option>Carrot</option> 
      <option>Chocolate</option> 
      <option>Vanilla</option> 
      <option>Red Velvet</option> 
      <option>Oreo</option> 
      <option>Coffee</option> 
      <option>Decide with taster £20</option> 
      </select></td> 
      </tr> 
     <tr> 
      <td> 
      <input name="MobileNumber" type="text" id="MobileNumber" maxlength="20" value="<?php if (isset($_POST['MobileNumber'])) echo $_POST['MobileNumber']; ?>"/>   
          </td> 
          <td> 
      <span class="auto-style24">Occasion 
      <select name="Occasion" type="radio" id="Occasion" maxlength="20" value="<?php if (isset($_POST['Occassion'])) echo $_POST['Occassion']; ?>"/> 
      <option></option> 
      <option>New baby</option> 
      <option>Birthday</option> 
      <option>Wedding</option> 
      <option>New Job</option> 
      <option>Christmas</option> 
      <option>Easter</option> 
      <option>Valentines</option> 
      <option>Congratulations</option> 
      <option>Anniversary</option> 
      <option>Other</option> 
      </select></td> 
     </tr> 
    </table> 
    </form> 

表單數據插入到三個數據庫表中的代碼:

<html> 
<head> 
<title>Form Process Message</title> 
</head><body> 
<?php # 

// This script performs an INSERT query to add a record to the users table. 


if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

// open the database... 

require ('mysqli_connect.php'); 

// Make the query: 

// Customer details 

$t = $_POST[Title]; 
$fn = $_POST[FirstName]; 
$sn = $_POST[Surname]; 
$e = $_POST[EmailAddress]; 
$ht = $_POST[HomeTelephone]; 
$mn = $_POST[MobileNumber]; 
$hn = $_POST[HouseNumberName]; 
$s = $_POST[Street]; 
$tw = $_POST[Town]; 
$c = $_POST[County]; 
$pc = $_POST[Postcode]; 

// Cake details 
$ct = $POST[CupcakeType]; 
$cn = $_POST[CupcakeNumber]; 
$cf = $_POST[CupcakeFrosting]; 
$o = $_POST[Occassion]; 

// Preferred Appointment 
$ad = $_POST[AppointmentDate]; 
$at = $_POST[AppointmentTime]; 
$ta = $_POST[Taster]; 
$cwb = $_POST[CakeWantedBy]; 

$q = "INSERT INTO customerdetails(Title, FirstName, Surname, EmailAddress, HomeTelephone, MobileNumber, HouseNumberName, Street, Town, County, Postcode) VALUES ('$t','$fn', '$sn', '$e', '$ht', '$mn', '$hn', '$s', '$tw', '$c', '$pc')"; 

//execute query   
$r = @mysqli_query ($dbc, $q); 

//get customer id for preferred appointment 
$ci = my_sqli_insert_id($dbc); 

$q1 = "INSERT INTO cakedetail(CupcakeType, CupcakeNumber, CupcakeFrosting, Occassion) VALUES ('$ct','$cn', '$cf', '$o')"; 

//execute query 
$r1 = @mysqli_query ($dbc, $q1); 

//get cakedetail id for preferred appointment 
$cdi = my_sqli_insert_id($dbc); 

$q2 = "INSERT INTO preferredappointment(AppointmentDate, AppoitmentTime, Taster, CakeWantedBy, EmailAddress) VALUES ($ci, $cdi, '$ad','$at', '$ta', '$cwb', '$e')"; 

//execute query 
$r2 = @mysqli_query ($dbc, $q2); 

// Run the query. 

if ($r) { 

// If it ran OK. 
// Print a message: 


echo '<h1>Thank you! 

<br /> 
Your request is now registered. 
<br /> 
<a href="gallery.html">Back to the Gallery page</a></h1>';  
     }  
else { 

// If it did not run OK. 
// Public message: 

echo '<h1>System Error</h1> 

<p class="error">You could not be registered due to a system error. We apologise for any inconvenience.</p> 

<a href="gallery.html">Back to the Gallery page</a>';  
// Debugging message: 

echo '<p>' . mysqli_error($dbc) . '<br /><br /> 
Query: ' . $q . '</p>'; 

    } 
//close the dbc   
mysqli_close($dbc); 
} 

    ?> 
    </body> 
    </html> 

有稱爲cakeorder,爲CustomerDetails和優選的預約三個數據庫表。 我不認爲多表插入工作與早期版本PHP,這是我開始使用,但我現在使用xampp 5.5.24和PHP 5.5.24。 我把HTML的大部分格式都去掉了,所以我可能在這裏留下了一個掛標籤,但實際網頁上沒有。 我不是很精通PHP,所以很多這些都是通過查看這個網站放在一起。 任何幫助將感激地收到。 謝謝

+1

你聽說過SQL注入嗎?你最好讀一下它,你的代碼是非常脆弱的。 – MightyPork

+0

你有錯字。你認爲'my_sqli_insert_id()'是正確的嗎?它的'mysqli_insert_id()' - >檢查http://www.w3schools.com/php/func_mysqli_insert_id.asp –

+1

'my_sqli_insert_id'不是一個函數..在發佈問題之前,我相信必須先調試錯誤,然後搜索錯誤,如果找不到解決方案,則發佈問題。 –

回答

0

感謝您的反饋。這不是專業用途,所以我不擔心漏洞,它只是試圖讓這些東西起作用。正如我所說我不太瞭解php代碼,因此使用my_sqli_insert_id的錯誤。創建存儲過程可能會更好,但我現在只是在學習基本知識。

相關問題