我真的很難過,我希望有人能幫助我:我有一個預先生成的促銷代碼列表。每次用戶在表單中輸入他的電子郵件時,我都希望生成一封包含預定義代碼的電子郵件 - 顯然,每個代碼只應發送一次。向用戶發送唯一代碼
我知道如何發送和生成電子郵件,如果我可以隨時生成一個代碼,我也知道如何做到這一點。但我從來沒有試圖一次一個地使用php來「搶」一個代碼。
所以,任何幫助表示讚賞!
我真的很難過,我希望有人能幫助我:我有一個預先生成的促銷代碼列表。每次用戶在表單中輸入他的電子郵件時,我都希望生成一封包含預定義代碼的電子郵件 - 顯然,每個代碼只應發送一次。向用戶發送唯一代碼
我知道如何發送和生成電子郵件,如果我可以隨時生成一個代碼,我也知道如何做到這一點。但我從來沒有試圖一次一個地使用php來「搶」一個代碼。
所以,任何幫助表示讚賞!
將數據庫中的所有代碼插入名爲「sent」的列和唯一ID(帶有auto_increment)。
然後得到與
SELECT id,code FROM my_codes WHERE sent = 0 LIMIT 1;
代碼發送您所使用的代碼的代碼和安全:
UPDATE my_codes SET sent = 1 WHERE id = $the_id_from_the_selected_code;
如果您不想再使用的代碼,你可以只需刪除代碼而不使用已發送的列。
DELETE FROM my_codes WHERE id = $the_id_from_the_selected_code;
要生成「對飛」的唯一代碼,你可以只使用uniqid(rand())
,基於這2個郵件將在準確的生成在微秒的時間和情況的隨機前綴,它返回一個uniq的ID同時。
非常感謝你 - 我會盡力的! – hanskfroschauer
請嘗試做這樣的事情:
| id (INT (11)) | coupon_code (varchar(30)) | sent_status (INT (11)) | date |
=============================== ==============================================
SELECT * FROM coupon_code WHERE sent_status=0 ORDER BY RAND() // use this during sending email
$coupon_code = $row["coupon_code"];
UPDATE coupon_code SET sent_status='1' where coupon_code='$coupon_code'; // update coupon_code table once you get the code and after sending email to user.
任何代碼?嘗試過什麼? –
促銷代碼存儲在哪裏?在一個文本文件?一系列文本文件?數據庫? – Chris
現在,我有一個Excel文件。但我想我會把它們放在一個MySQL數據庫中。 – hanskfroschauer