login  Naam:   Wachtwoord: 
Registreer je!
 Forum

x aantal unieke sleutels invoeren (Opgelost)

Offline Meulenhof - 02/01/2008 02:09 (laatste wijziging 02/01/2008 02:09)
Avatar van MeulenhofLid Nu ben ik bezig met een soort prijzen systeem. Je krijgt een bepaalde sleutel naar je gemailt als je deze invoert heb je mogelijk prijs.

Nu wil ik 10000 unieke sleutels invoeren door middel van een script (handmatig is onbegonnen werk)

Nu is de onderstande code de sleutel generator.
  1. <?php
  2. function keygen($lengte) {
  3.  
  4. $hoofdletters = range('A', 'Z');
  5. $cijfers = range(0, 9);
  6.  
  7. $tekens = array_merge($hoofdletters, $cijfers);
  8. $sleutel = '';
  9.  
  10. for($i = 0; $i < $lengte; $i++)
  11. $sleutel .= $tekens[rand(0, (sizeof($tekens) - 1))];
  12.  
  13. return $sleutel;
  14.  
  15. }
  16.  
  17. echo keygen(10);
  18. ?>


Nu wil ik vragen hoe kun je insert query maken die 10000 unieke sleutels in 1x de database vult.

2 antwoorden

Gesponsorde links
Offline Wim - 02/01/2008 04:07 (laatste wijziging 02/01/2008 04:12)
Avatar van Wim Crew algemeen
  1. function keygen(); // dit is dus je functie
  2. function add_db()
  3. {
  4. $key = keygen(10);
  5. $q = mysql_query("SELECT count(key) AS aantal FROM keys WHERE key='".$key."'");
  6. if(mysql_result($q, 0) != 0)
  7. {
  8. add_db();
  9. }
  10. else
  11. {
  12. mysql_query("INSERT INTO keys (key) VALUES ('".$key."')");
  13. return true;
  14. }
  15. }
  16.  
  17. //dit doe je dan 10000x met een for-loop:
  18. for($i=0; $i<10000; $i++)
  19. {
  20. add_db();
  21. }


//edit:
best ook je timeout van standaard 30s wat verhogen (10000query's is wel wat telwerk):
http://be.php.n...ution-time

  1. ini_set('max_execution_time', 120); //safe mode moet uit staan!!!
Offline Meulenhof - 02/01/2008 13:03
Avatar van Meulenhof Lid De timeout verhogen was niet nodig, duurde maar 8 seconden om het in te voeren.

10000 maal dank 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.195s