2014-01-13 33 views
0

我真的很難過,我希望有人能幫助我:我有一個預先生成的促銷代碼列表。每次用戶在表單中輸入他的電子郵件時,我都希望生成一封包含預定義代碼的電子郵件 - 顯然,每個代碼只應發送一次。向用戶發送唯一代碼

我知道如何發送和生成電子郵件,如果我可以隨時生成一個代碼,我也知道如何做到這一點。但我從來沒有試圖一次一個地使用php來「搶」一個代碼。

所以,任何幫助表示讚賞!

+0

任何代碼?嘗試過什麼? –

+0

促銷代碼存儲在哪裏?在一個文本文件?一系列文本文件?數據庫? – Chris

+0

現在,我有一個Excel文件。但我想我會把它們放在一個MySQL數據庫中。 – hanskfroschauer

回答

0

將數據庫中的所有代碼插入名爲「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同時。

+0

非常感謝你 - 我會盡力的! – hanskfroschauer

0

請嘗試做這樣的事情:

| 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. 
相關問題