x aantal data naar database sturen
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)
Code voor het invoeren in de database
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
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";
}
?>
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)
1
2
3
4
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>
<label for="aantalcodes">Aantal: <input type="text" id="aantalcodes" name="aantalcodes">
<input type="submit" value="Toevoegen">
</form>
Wie kan mij verder helpen?
lijkt me het makkelijkst met een for-loop, en dan telkens in de for-loop een insert query uitvoeren
Code (php)
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
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>';
}
?>
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 -
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
Heel hard bedankt SanThe.