簡體   English   中英

為PHP表單插入查詢

[英]Insert Query for a PHP form

我正在使用PHP和MySQL,但遇到了一個小問題。 我試圖研究並弄清楚該怎么做,但是,我只是想不通。 我將不勝感激任何幫助。 這是我的問題...

我有3個SQL表:

Customers
    cID (primaryKey)
    email
    name
    password
    ...etc.

Products
    pID (primaryKey)
    Pname
    Ptype

CustomerRequests
    requestID(primarykey)
    cID (foreign key references customer table)
    pID (foreign key references products table)
    quantityRequested

我有一個正在使用PHP處理的HTML表單。 就像請求表一樣,因此用戶登錄並填寫請求表。 此表單上的字段如下:

選擇產品名稱,選擇數量等。這是針對$quantity=$_POST['quantity'] ...完成的,因此基本上將表單數據存儲在變量中。

現在,這是我要堅持的部分。 如何執行SQL INSERT查詢,以便數據庫知道cIDpID是什么? 即什么是外鍵值?

例如:

$insert = mysql_query(INSERT INTO CustomerRequests VALUES ('THIS WOULD BE BLANK AS ITS AUTOINCREMENTED PROMARY KEY FOR REQUEST ID','HOW WOULD I GET THE cID AUTOMATICALLY HERE','HOW WOULD I GET THE pID HERE','".$quantity."'))

該查詢使用INSERT查詢將用戶輸入存儲到數據庫中。 但是,由於customerID和productID是不同表中的外鍵,我該如何編寫PHP查詢?

感謝您的幫助,如果您需要更多信息,請與我聯系。

我認為您應該在顯示表單之前檢索產品和客戶ID。 然后,從表單中獲取ID並將其插入到第三張表中。

我不確定您為什么認為自己有問題。 cID應該是已知的,因為客戶已經登錄pID應該是已知的,因為您的表單應該使用產品的下拉列表,並且將pID用作value

然后,使用這些值進行INSERT很簡單,即

<select id="product">
    <option value="pid001">Product One</option>
    <option value="pid002">Product Two</option>
    ... etc. ...
</select>

換句話說,這些值打到您的表單之前都是已知的。

事后不要將產品名稱與ID相匹配; 那只是增加了額外的工作。 如果您有可用的值,則應使用它。 您的表格應該已經包含關聯。

根據“產品”表中的SELECT查詢創建下拉列表。 pID用作value ,將pName用作內容。 這樣,以表格形式發送的數據就是您在INSERT所需的外鍵。

<?php
    /* 
     * $arrProducts is the result from a query like
     * SELECT * FROM Products;
     */
    print '<select id="products">';
    foreach ($arrProducts as $arrProduct) {
        printf('<option value="%s">%s</option>', $arrProduct['pID'], $arrProduct['pName']);
    }
    print '</select>';
?>

同樣,當您登錄用戶時,獲取其cID並將其插入會話中。

另一注,請停止使用PHP的mysql_函數家族 這些已被棄用,並且將從將來的版本中刪除。 它們易於進行SQL注入。 您應該在應用程序中使用mysqli_或PDO。 兩者都提供參數化查詢和准備好的語句。

“約翰尼,如果您使用的是Dreamweaver,則您的插入語句需要如下所示:if((isset($ _ POST [“ MM_insert”]))&&($ _POST [“ MM_insert”] ==“ insertForm”)){ $ insertSQL = sprintf(INTO CustomerRequests(productName,qty,cID)值(%s,%s,%s)“等。

然后使用帶有隱藏字段的表單提交您的信息,例如:<form name =“ insertForm” type =“ post” action =“ placeOrder.php”> <input type =“ hidden” type =“ text” id =“ qty “ value =” <php?echo $ row_Recordset1 ['qty'];?>“ /> <input type =” hidden“ type =” text“ name =” productName“ value =” <php?echo $ row_Recordset1 ['productName '];?>“ /> <input type =” hidden“ type =” text“ name =” cID“ value =” <php?echo $ cID;?>“ /> <input type =” hidden“ name =” MM_insert“ value =” insertForm“ /> <輸入類型=” submit“ name =”發送“ id =” Submit“ value =”提交表單“ /> </ form>

否則,只需忘記Dreamweaver的東西並使用:在CustomerRequests(productName,qty,cID)值(bananas,2、1044)中插入並在表單中使用相同的隱藏字段。 您還需要捕獲表單中提交的數據並將其另存為變量,就像已經完成的那樣:$ quantity = $ _ POST ['quantity']等。

我什至因為“代碼提交格式不正確”而提交此信息時遇到了很多麻煩,所以希望您能收到! 將<更改為<並將>更改為>以理解此代碼。 祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM