如下: 套shop_cart的資料轉到history 現在有個問題 我history還有一個欄位(buy_date)要資料 請問我要怎麼改 是要再寫一個UPDATE嗎??
"INSERT INTO history
(user_name,user_phone,part_id,order_number)
SELECT user_name,
user_phone,
part_id,
order_number
FROM shop_cart
WHERE user_name='$insert_new0'"
"INSERT INTO history
(user_name,user_phone,part_id,order_number,buy_date)
SELECT user_name,
user_phone,
part_id,
order_number,
buy_date
FROM shop_cart
WHERE user_name='$insert_new0'"
希望你不要又突然馬後炮一輪。
光看你這樣存我就覺得一定還有事。
我的想法是 把購物車的內容轉到history上 再存一個時間 然後在回頭把購物車的資料刪了
請問這樣有甚麼問題嗎?
看程式碼 你的意思 先在shop_cart加入一個buy_date 在使用者按下結帳的時候update資料 再一起轉??
存時間沒問題。畢竟現在orm都有自訂的建立時間(created_at)跟更新時間(updated_at)
除非是你隨便命名,要不然依你說要加入的為buy_date。
會被理解為「購買時間」
正常要存 history 的情況下,不太可能將有效變數列入額外欄位內。
也就是說,你最大的問題再於你沒說清楚。
如果你只是要單純記錄「記錄時間」,大可利用 CURRENT_TIMESTAMP 的特性。不需要再從資料中傳送不必要的記錄參數。
你還是說清楚一下你的實際運行流程吧。
這樣子搞不是辦法。
如果是要記錄歷程的話。
有時你並不需要用來源檔來送的。
我發現你還是帶有點拿sql當程式開發在用。
以下的方式給你參考。
假資料帶入法
"INSERT INTO history
(user_name,user_phone,part_id,order_number,buy_date)
SELECT user_name,
user_phone,
part_id,
order_number,
"2020-01-01" AS buy_date
FROM shop_cart
WHERE user_name='$insert_new0'"
記錄時間應用法
將history多開一個如下的欄位
`historyTime` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
然後你的資料就可以不需要再加
用你原來的
"INSERT INTO history
(user_name,user_phone,part_id,order_number)
SELECT user_name,
user_phone,
part_id,
order_number
FROM shop_cart
WHERE user_name='$insert_new0'"
當你儲存資料到history,它就會幫你將當下時間記錄了。
先感謝成功了 我使用(current_timestamp())
我的想法式這樣的
購物車(先寫入history 之後 在呼叫一個php 用他刪除之前的購物車內容) -> 購買紀錄
給你一個觀念。
資料盡量不要用delete。
如果運做上有其必要,就盡量採用temp或是程式變數緩存的方式。
有必要才寫入,盡量不要拿sql當緩存用。
sql的運做上,delete是最操效能且也危險的操作。
在規劃上,delete的動作,不要規劃到很頻繁的操作上。
以上是給你的建議。
好的 那我再想想 我要怎麼改
增加兩個欄位,例如叫做 狀態 , 一個狀態是還停在購物車,另一個是
確定購買,只要update 狀態欄位,以及確定購買的時間戳(另一個欄位).這樣也許是一個參考方向.
我一開始也是這樣做 我為了讓使用者不會重複購買
結帳前:
(例:小明加入10隻筆到購物車 後面再加入10筆 這個時候不會再新增新的一筆資料 而是舊的資料在加10) 以上是還沒結帳的時候
我的sql
INSERT INTO shop_cart (user_name,user_phone,part_id,order_number)
VALUES('$insert_new0','$insert_new1','$insert_new2','$insert_new3')
ON DUPLICATE KEY UPDATE order_number = order_number + '$insert_new3'
結帳後:
這邊我遇到一個問題 如何判斷物品的狀態 如我的資料表怎麼知道這一筆是還沒結帳的還是結帳的
遇到問題
(例:假入如之前那隻筆的狀態是Y了 但我還是會加在那一筆上 而不是新的一筆)