x aantal data naar database sturen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PH Piet

PH Piet

01/09/2011 00:05:09
Quote Anchor link
Hallo,

De bedoeling is dat je in een tekstvak een cijfer kan invullen, hoeveel keer je een random code wilt maken. Deze code zetten we dan in een database met de datum erbij waarop hij is gemaakt. Nu zit ik een beetje vast.
1a) Kan ik hiervoor een "do while()" gebruiken voor mijn functie?
1b) Zoja, zet ik dan mijn $code in arrays of hoe doe ik dit dan?
2) Hoe schrijf ik de data naar mijn database als ik x aantal code's heb?

Code voor het maken van de "code"
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function make_rand($length) {
  $chars = "D123456789";
  $rand = '';
  for ($i = 1; $i <= $length; $i++) {
    $num = rand(0, strlen($chars));
    $rand .= substr($chars, $num, 1);
    }

  return $rand;
  }

$code = make_rand(11);
echo $code;
?>


Code voor het invoeren in de database
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    $sql = "INSERT INTO toegang (code,datum,gebruik)
    VALUES (',date(),'N')"
;

    if (!mysql_query($sql))
      {

      die('Error: ' . mysql_error());
      }

    echo "1 record added";
    }

?>


HTML code van het formulier
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label for="aantalcodes">Aantal: <input type="text" id="aantalcodes" name="aantalcodes">
<input type="submit" value="Toevoegen">
</form>


Wie kan mij verder helpen?
 
PHP hulp

PHP hulp

22/12/2024 21:52:19
 
Vincent Huisman

Vincent Huisman

01/09/2011 00:10:26
Quote Anchor link
lijkt me het makkelijkst met een for-loop, en dan telkens in de for-loop een insert query uitvoeren
 
- SanThe -

- SanThe -

01/09/2011 00:21:53
Quote Anchor link
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
<?php
function make_rand($length)
{

    $chars = "D123456789";
    $rand = '';
    for ($i = 1; $i <= $length; $i++)
    {

        $num = rand(0, strlen($chars)-1);
        $rand .= substr($chars, $num, 1);
    }

    return $rand;
}


if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    for ($tel = 1; $tel <= strval($_POST['aantalcodes']); $tel++)
    {

        $sql = "INSERT INTO toegang (code,datum,gebruik)
                VALUES ('"
. make_rand(11) . "', NOW(), 'N')" ;
        if (!mysql_query($sql))
        {

            // error (geen die() gebruiken)
        }
        echo $tel . " record(s) added<br/>";
    }
}

else
{
    echo '<form action="" method="post">
        <label for="aantalcodes">Aantal: <input type="text" id="aantalcodes" name="aantalcodes">
        <input type="submit" value="Toevoegen">
        </form>'
;
}

?>


Toevoeging op 01/09/2011 00:38:07:

Ik weet niet of het de bedoeling is maar er staat een D en geen 0 (nul) in het code-array. Verder blijft het mogelijk om dubbele codes in de database te zetten. Wil je dit niet, zet dat veld dan op UNIQUE en vang de eventuele error op.
Gewijzigd op 01/09/2011 00:27:19 door - SanThe -
 
PH Piet

PH Piet

01/09/2011 00:48:06
Quote Anchor link
Ohw, bedankt SanThe.
Had al mijn functie mee in de loop gezet en extra variabelen aangemaakt.
De 0 heb ik er uit gelaten omdat deze op een o trekt.
In plaats van die() gebruik ik dan gewoon een echo?
Gewijzigd op 01/09/2011 00:49:18 door PH Piet
 
- SanThe -

- SanThe -

01/09/2011 00:49:59
 
PH Piet

PH Piet

01/09/2011 01:29:57
Quote Anchor link
Das heel wat duidelijker dan die boodschappen van mijn host zelf.
Heel hard bedankt SanThe.
 



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.