insert query 200 records maken met rand();

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frits Schapendonk

Frits Schapendonk

27/08/2010 11:01:29
Quote Anchor link
Beste forumleden

Ik ben momenteel bezig met een prijslijsten applicatie die bijna af is. Het betreft een applicatie waarop om te beginnen 200 bedrijven gaan inloggen. Zij ontvangen een flyer met een random logincode. Nu wil de opdrachtgever een functie binnen de admin omgeving hebben om in een keer 200 accounts aan te maken waarvan de logincode random is.

Nu vraag ik mij af hoe ik dit het beste kan doen. Heeft iemand hier ervaring mee? Zijn er meerdere manieren voor? Ik heb geprobeerd om met een while loop dit te realiseren maar ik krijg het niet voor elkaar om ervoor te zorgen dat er maar 200 records worden aangemaakt. Daarnaast ben ik bang dat de performance er onder leiden.

Ik weet wel dat je bij een select query rand(); kunt gebruiken in de WHERE clausule maar is er ook zoiets mogelijk voor een insert query?

Alvast bedankt voor het meedenken

Groeten Frits
 
PHP hulp

PHP hulp

22/11/2024 23:46:07
 
Aad B

Aad B

27/08/2010 11:06:01
Quote Anchor link
Je moet een nette loop maken 001....200 en dan deze waarde ook meenemen in het account. In de insert dus.
 
Joakim Broden

Joakim Broden

27/08/2010 11:09:36
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
for($i = 1; $i >= 200; $i++) {
    $logincode = rand(5555, 9999); //Maak een random logincode van 4 getallen

    mysql_query("INSERT INTO tabel SET logincode = '".$logincode."'"); //Query in database proppen
}


Heb het niet getest maar zo maak je ongeveer 200 queries aan met een random code,
 
Frits Schapendonk

Frits Schapendonk

27/08/2010 11:13:54
Quote Anchor link
Oetzie en mijn achternaam op 27/08/2010 11:09:36:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
for($i = 1; $i >= 200; $i++) {
    $logincode = rand(5555, 9999); //Maak een random logincode van 4 getallen

    mysql_query("INSERT INTO tabel SET logincode = '".$logincode."'"); //Query in database proppen
}



Bedankt! Ik ga het vanavond even testen.
Heb het niet getest maar zo maak je ongeveer 200 queries aan met een random code,
 
Chris -

Chris -

27/08/2010 11:15:51
Quote Anchor link
Frits, misschien heb je iets aan onderstaande. Zojuist getest, dit werkt in ieder geval. Pas de code (coupon-code) aan naar wens :-)

Database:
id (auto_increment, primary key)
coupon (varchar(25))

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('test');

if(isset($_GET['make']))
{

    $howmany = 200;
    $length = 15;
    $characters = range('a', 'z');
    $characters = array_merge(range(0, 9), $characters);
    $characters = array_merge(range('A', 'Z'), $characters);
    
    for($i = 0; $i < $howmany; $i++)
    {

        
        $coupon = '';
        for($j = 0; $j < $length; $j++)
        {

            $coupon .= $characters[rand(0, count($characters) -1)];
        }

        mysql_query("INSERT INTO coupon(coupon) VALUES ('".$coupon."')");
    }

    echo '<a href="?">Done</a>';
}

else
{
    echo 'Current coupon codes:<br />';
    $sql = "SELECT id, coupon FROM coupon";
    $result = mysql_query($sql);
    $count = mysql_num_rows($result);
    if($count > 0)
    {

        echo $count.' coupons in total:<br />';
        while(($list = mysql_fetch_assoc($result)))
        {

            echo $list['id'].': '.$list['coupon'].'<br />';    
        }
    }

    else
    {
        echo 'No coupons made yet!<br />';    
    }

    echo '<a href="?make">Maken?</a>';
}

?>
 
Elwin - Fratsloos

Elwin - Fratsloos

27/08/2010 13:32:01
Quote Anchor link
Het zal niet snel gebeuren, maar theoretisch is het heel goed mogelijk dat je nu dubbele codes krijgt. En dan werkt het inloggen waarschijnlijk niet meer.

Edit:
Met nu bedoel ik bovenstaande voorbeelden.

Je zou bijvoorbeeld een functie kunnen maken die controleert of de code in de database staat. En op basis van wat de functie teruggeeft een nieuwe code genereren.
Gewijzigd op 27/08/2010 13:33:26 door Elwin - Fratsloos
 
Chris -

Chris -

27/08/2010 13:37:34
Quote Anchor link
Klopt! Deze kun je natuurlijk veel uitgebreider maken en hier een volledig script van maken ;-)
 
Crude Oil

Crude Oil

27/08/2010 14:09:30
Quote Anchor link
Oetzie en mijn achternaam op 27/08/2010 11:09:36:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
for($i = 1; $i >= 200; $i++) {
    $logincode = rand(5555, 9999); //Maak een random logincode van 4 getallen

    mysql_query("INSERT INTO tabel SET logincode = '".$logincode."'"); //Query in database proppen
}

Heb het niet getest maar zo maak je ongeveer 200 queries aan met een random code,


Die gaat iniedergeval niet werken
$i >= 200 betekent $i is GROTER of GELIJK aan 200
$i begint als 1 dus dan krijg je het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
for($i=1; i >= 200; i++){
// wordt niet uitgevoerd omdat i NIET groter of gelijk aan 200 is
}
// Dit wordt wel uitgevoerd

}
 
Jaron T

Jaron T

27/08/2010 14:36:50
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php for($i=1; $i <= 200; $i++) ?>


moet het zijn :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.