מת פה, אה...
שלום,
אני מעוניין לייצר קופונים. על כל קופון יש 6-7 תווים (אותיות ומספרים) חד ערכיים, כלומר - שקוד קופון לא יכול לחזור פעמיים.
איך אתם מציעים לי לעשות זאת?
יש איזה שהוא אלגוריתם טוב לזה?
אגב, אני כותב ב PHP
תודה לעונים.
נערך לאחרונה על ידי roice0, 06/11/2011 בשעה 19:13
מת פה, אה...
למה לא פשוט ליצור קוד רנדומלי ולהריץ בדיקה אם קיים בדאטה ?
מתכננים לבנות חנות וירטואלית מקצועית ? בקרו באתר וקבלו הצעה לבניית חנות וירטואלית.
מדריך שיפוצים ועבודות גבס, באתר טיפים מאמרים ומדריכים בתחומים עבודות גבס בנייה ושיפוץ.
כי זו עבודה די עקומה...
קוד:uniqid();
Back Order - רישום לאחור ("BackOrder") של דומיינים ישראליים
Reverse Whois - אתר דומיינים ישראליים לפי שם הבעלים, כתובת מייל, ועוד..
דומיינים שהתפנו לרישום - קבל מייל שבועי עם רשימת הדומיינים הישראליים שהתפנו לרישום באותו השבוע
למרות שזאת עבודה עקומה...
<?php
class uniqueId {
function validateTrueUnique(){
$canidate = $this->getTrueRandom();
$q = "SELECT coupon_id FROM " . DB_COUPONS . " WHERE coupond_id = '$canidate'";
$r = mysql_query($q);
if ( mysql_num_rows($r) ):
$this -> validateTrueUnique();
break;
endif;
return $canidate;
}
private function getTrueRandom(){
$str = '';
$canidate = substr(md5(uniqid()), 0, 6);
$chars = str_split($canidate);
foreach ($chars as $char):
if ($bool = rand(0, 1)):
$str .= strtoupper($char);
else:
$str .= $char;
endif;
endforeach;
return $str;
}
}
?>
אתה לא צריך לדאוג ליעילות כל-כך כאשר מדובר בערך שרוב הסיכויים יהיה יחידני וטבלה של פחות מכמה עשרות אלפי קופונים.
וגם אז... השאילתות יהיו מספיק מהירות.
תוסיף לזה את העובדה שאתה יוצר קופונים רק פעם אחת ב... וזה משהו שרק תעשה בעת רכישה, אתה מדבר על צרות של עשירים וחבל לבנות פתרון מסובך כאשר אין לך שצף לקוחות.
אם אתה גמיש בנושא כמות התוים של קוד הקופון, למשל 12 תווים,
תעשה שברגע שהוא נוצר הוא יורקב מהתאריך + שעה, דקה ושנייה.
ייעוץ, תכנון, ניהול והקמת מערכות מצלמות אבטחה בפריסה ארצית.
תמיכה בנושא מעגל סגור בנוסף כל המידע הדרוש להקמת מערכות אבטחה