Specifiek aantal gebruikers invoegen in de database via een tekst bestand
Ik probeer een script te maken waarbij ik in een form kan aangeven hoeveel gebruikers ik wil toevoegen aan de database, waarvan de namen worden gelezen uit een .txt bestand. Het klinkt misschien een beetje onduidelijk, maar het komt er op neer dat het systeem dan bijvoorbeeld 10 regels uit een .txt bestand moet pakken en in de database moet zetten. Als de namen uit het .txt bestand al in gebruik zijn, moet het systeem zoeken in het .txt bestand naar gebruikersnamen die nog niet worden gebruikt in de database.
Ik heb het al geprobeerd te scripten, maar ik creëerde een herhaling, waarbij het systeem continue gebruikers in de database plaatste, zonder naam die hij eigenlijk zou moeten lezen uit het .txt bestand.
Weten jullie hoe ik dit het beste aan kan pakken?
zonder relevante code kunnen we niet vertellen wat er fout gaat. plaats is een stukje relevante code.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
if(isset($_POST['submit'])) {
$x = $_POST['x'];
$begin = rand(0,1499326);
$names = file(users.txt);
for($i=1;$i <= $aantal;$i++){
$output = array_slice($names[$i], $begin, $x);
$select = "SELECT login FROM `users`";
while($users = mysql_fetch_assoc(mysql_query($select))) {
if(!in_array($users['login'],$output)) {
$pass = rand(0,999999999999);
mysql_query("INSERT INTO `users`(login,pass) values('$output',MD5('$pass'))") or die (mysql_error());
echo "Ok.";
} else {
echo "Alle namen zijn al in gebruik.";
}
}
}
} else {
?>
if(isset($_POST['submit'])) {
$x = $_POST['x'];
$begin = rand(0,1499326);
$names = file(users.txt);
for($i=1;$i <= $aantal;$i++){
$output = array_slice($names[$i], $begin, $x);
$select = "SELECT login FROM `users`";
while($users = mysql_fetch_assoc(mysql_query($select))) {
if(!in_array($users['login'],$output)) {
$pass = rand(0,999999999999);
mysql_query("INSERT INTO `users`(login,pass) values('$output',MD5('$pass'))") or die (mysql_error());
echo "Ok.";
} else {
echo "Alle namen zijn al in gebruik.";
}
}
}
} else {
?>
<form method="post">
<h1>Hoeveel gebruikers?</h1>
<br /><input type="text" name="x">
<br /><input type="submit" name="submit" value="Toevoegen">
</form>
Gewijzigd op 20/08/2012 22:53:49 door Jacob de Graaf
Je kan dan zelfs alle namen in 1 query invoeren.
Gewijzigd op 20/08/2012 23:24:07 door Ivo Breeden
@ Erwin H, bedankt voor de tip! De syntax fouten komen door de slordigheid. Ik had het script eerst goed, maar daarna even snel aangepast en niet meer getest daarna. Daardoor was $_POST['x'] bijvoorbeeld eerst $_POST['aantal'], waar het $aantal vandaan komt. Ik ga het proberen.