簡體   English   中英

PHP / MySQL在提交時插入多個數據表

[英]PHP/MySQL insert into multiple data tables on submit

我正在工作中構建一個Web應用程序,並且有一個表單,用戶可以在其中注冊某些類型的信息。

Username   |   Password   |   Company

現在我不確定該如何處理。 我想要的是當用戶提交該注冊表單時,用戶名,密碼和公司被寫入一個數據表(用戶),但因為用戶數據表中的公司是外鍵引用,我需要將公司寫入單獨的數據表(公司)作為主鍵(當然,用戶名也以1-1關系的形式寫為FK參考)。

我不是在尋找你們的編碼解決方案,因為我知道我的PHP和MYSQL我只是在尋找一些偽代碼算法來激發創意!

編輯:我使用的是POSTGRESQL,而不是MYSQL,但是我敢肯定,除了端口號和小的語法更改外,沒有什么區別

假設第一列是id

  1. 保存公司$mysqli->query("INSERT INTO company VALUES (NULL, '$company_name')";
  2. 獲取此項目的ID。 $company_id = $mysqli->insert_id;
  3. 使用此ID保存用戶$mysqli->query("INSERT INTO user VALUES (NULL, '$username', '$password', '$company_id')";
  4. 獲取用戶ID $user_id = $mysqli->insert_id;
  5. 用它更新公司: $mysqli->query("UPDATE company SET user_id = $user_id WHERE company_id = $company_id)";

開始將您的公司插入到您的表公司中。 取回ID。 (有一個類似LastInsertId的sql請求)在表用戶中插入user / password / IdCompagny。

編輯:一些幫助: http : //dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

一些問題:

  • 為什么User:Company == 1:1? 如果我和同事一起加入您的網站,我們是否需要假裝在不同的地方工作?
  • 如果公司可以有一名以上的員工,那么您將采用哪種驗證方式來組合公司名稱的變體(例如,IBM與International Business Machines)?
  • 如果用戶失業了怎么辦?

如果公司是一個很好的方知基准,而不是需要有或事物斷數據,我可能會先注冊我的用戶。 然后,當用戶登錄時,您可以導航他們以獲取其他信息。 這具有使用戶注冊麻煩的附加優點。

用例:

  • 用戶提交usernamepassword
  • 過濾不良品的輸入並驗證重復性,適用性
  • 保存到數據庫並檢索用戶PK
  • 加載“其他信息”頁面並將會話變量設置為“ nag”標志-如果用戶選擇不填寫“ add'l”信息,nag標志會觸發提醒行為
  • 向公司字段添加自動完成功能,以便用戶可以使用現有的公司表條目
  • 處理表格並保存到數據庫
    • 添加公司和關聯用戶
    • 或只是關聯用戶
  • 取消設置會話na標志,這樣您的網站就不會繼續na

暫無
暫無

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

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