par
sp4tz » 03 mai 2010, 17:26
Bonjour à tous,
Je travail sur un nouveau projet et j'ai de la peine à me lancer.
Je dois générer 10'000 licences de 8 caractères en chiffre et lettre type "15HZ2A97".
Ces licences vont être envoyée pour impression et fournie avec un achat spécifique.
Le client va acheter le produit et trouver une carte avec le code pour activer son produit.
J'ai créé ce script qui me génère les codes et les transmets dans une BDD
<?php
// Fichier de connexion à la base de donnée
// require_once('../fr/admin/Connections/xxx.php');
function MakeRandomLicence($length=7) {
// Déclaration des variables
$newlicence = "";
$num = array ('1', '2', '3', '4', '5', '6', '7', '8', '9');
$alpha = array ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I','J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
$code = array ();
foreach ($num as $x) {
foreach ($alpha as $y) {
array_push($code,"$y");
array_push($code,"$x");
}
}
for ( $i=0;$i<=$length;$i++)
$newlicence= $newlicence.$code[array_rand($code) ];
return $newlicence;
}
// On déclare le nombre total d'enregistrement voulu et on créé un boucle
// Inscription dans la base de donnée
for($i=1; $i<1001; $i++){
$value = array(MakeRandomLicence());
}$test = array_unique($value);
foreach($test as $val){
/* $insertSQL = "INSERT INTO `bwdb`.`keys` (`id`, `key`, `status`, `date`) VALUES (NULL, '$val','0', '')"; mysql_select_db($database_xxx, $xxx);
$Result1 = mysql_query($insertSQL, $xxx) or die(mysql_error());*/
echo $val.'<br/>';
}
?>
Ce code fonctionne très bien, mais j'y rencontre un problème de taille et que je n'ai malheureusement pas trouvé de solution. Il y a pleins de DOUBLON!
J'ai essayé avec un array_unique() mais je ne dois probablement pas l'utiliser correctement.
Bonjour à tous,
Je travail sur un nouveau projet et j'ai de la peine à me lancer.
Je dois générer 10'000 licences de 8 caractères en chiffre et lettre type "15HZ2A97".
Ces licences vont être envoyée pour impression et fournie avec un achat spécifique.
Le client va acheter le produit et trouver une carte avec le code pour activer son produit.
J'ai créé ce script qui me génère les codes et les transmets dans une BDD
[php]<?php
// Fichier de connexion à la base de donnée
// require_once('../fr/admin/Connections/xxx.php');
function MakeRandomLicence($length=7) {
// Déclaration des variables
$newlicence = "";
$num = array ('1', '2', '3', '4', '5', '6', '7', '8', '9');
$alpha = array ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I','J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
$code = array ();
foreach ($num as $x) {
foreach ($alpha as $y) {
array_push($code,"$y");
array_push($code,"$x");
}
}
for ( $i=0;$i<=$length;$i++)
$newlicence= $newlicence.$code[array_rand($code) ];
return $newlicence;
}
// On déclare le nombre total d'enregistrement voulu et on créé un boucle
// Inscription dans la base de donnée
for($i=1; $i<1001; $i++){
$value = array(MakeRandomLicence());
}$test = array_unique($value);
foreach($test as $val){
/* $insertSQL = "INSERT INTO `bwdb`.`keys` (`id`, `key`, `status`, `date`) VALUES (NULL, '$val','0', '')"; mysql_select_db($database_xxx, $xxx);
$Result1 = mysql_query($insertSQL, $xxx) or die(mysql_error());*/
echo $val.'<br/>';
}
?> [/php]
Ce code fonctionne très bien, mais j'y rencontre un problème de taille et que je n'ai malheureusement pas trouvé de solution. Il y a pleins de DOUBLON!
J'ai essayé avec un array_unique() mais je ne dois probablement pas l'utiliser correctement.