Arjan van Rossen op 14/09/2013 16:28:10
Moet daarnaast nog 15000+ database entries invoeren van ieder 8 velden
Waar komen die entries vandaan?
Als je ze digitaal hebt, kun je ze doorgaans vrij eenvoudig inlezen in/via phpadmin.
Link gekopieerd
Jan R
15-09-2013 11:30
gewijzigd op 15-09-2013 11:41
Arjan van Rossen op 14/09/2013 16:28:10
Ik ben hem aan het doorlezen. Moet daarnaast nog 15000+ database entries invoeren van ieder 8 velden dus dat kost ook de nodige tijd.
Kun je dat niet automatiseren; Excel of access inlezen
Ik laad een Excel(csv) bestand op met volgende code
<?php
session_name("adressen");
session_start();
if($_SESSION['user_name']=='')
{
session_destroy();
header("location:index.php");
exit;
}
else
{
setcookie ( "Naam" , $_SESSION['user_name'],mktime(18, 30, 0, 5, 12, 2020 ),"/");
}
?>
<!DOCTYPE HTML>
<html lang="NL-be">
<head>
<title>
Import gegevens
</title>
<META http-equiv="Content-Type" content="text/html; charset=us-ascii">
<META NAME="AUTHOR" CONTENT="JanR">
</head>
<?php
if ($_FILES[csv][size] > 0 && isset($_POST['splitser'])) {
switch ($_POST['splitser']){
case 'komma':
$split=',';
break;
case 'puntkomma':
$split=';';
break;
default:
die('Geen scheiding opgegeven!');
exit;
}
$con=opendatabasei();//eigen functie(mysqli resource)
$un=$_SESSION['user_name'];
$isadmin=fisadmini($con, $un, false);//eigen functie(bool)
if ($isadmin==1){
$isadmin=fisadmini($con, $un, true);
//get the csv file
$file = $_FILES[csv][tmp_name];
$handle = fopen($file,"r");
//loop through the csv file and insert into database
do {
if ($data[0]) {
$sql='INSERT INTO '.TBL_PREFIX .'leden (voornaam, achternaam, straat, huisnummer, postcode, gemeente, password) VALUES
(
"'.addslashes(trim($data[0])).'",
"'.addslashes(trim($data[1])).'",
"'.addslashes(trim($data[2])).'",
"'.addslashes(trim($data[3])).'",
"'.addslashes(trim($data[4])).'",
"'.addslashes(trim($data[5])).'",
"'.addslashes(hash("sha512",trim($data[7]))).'"
)
';
echo '<br>'.$sql.'<br>'.$data[7].'<br>';
mysqli_query($con,$sql );
$newid=mysqli_insert_id($con);//retrieve new ID(base on autoincrement field
$sql='INSERT INTO '.TBL_PREFIX .'emails (ID, email) VALUES
(
"'.addslashes($newid).'",
"'.addslashes(trim($data[6])).'"
)
';
mysqli_query($con,$sql );
}
} while ($data = fgetcsv($handle,1000,$split,"'"));
//
echo '<h1>Import voltooit</h1>
<a href="import.php">keer terug</a><br>';
}else{
//echo 'Enkel beheerders mogen adressen importeren!';
session_destroy();
echo '<h1>Deze pagina is enkel voor beheerders!</h1>';
}
if (isTest) {print_r(error_get_last());}
echo '<br>';
}
?>
<body>
<?php if (!empty($_GET[success])) { echo "<b>Your file has been imported.</b><br><br>"; } //generic success notice ?>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
Kies een bestand: <br />
<strong>Opgelet: Het bestand moet van het type csv zijn!</strong><br>
De kolommen moeten in de volgende volgorde staan
<ul>
<li>Voornaam</li>
<li>Naam</li>
<li>Straat</li>
<li>Huisnr/bus</li>
<li>Postcode</li>
<li>Gemeente</li>
<li>email</li>
<li>paswoord</li>
</ul>
Exact 8 kolommen dus<br><br>
Scheidingsteken:<br>
<input type="radio" name="splitser" value="komma">komma<br>
<input type="radio" name="splitser" value="puntkomma">puntkomma<br><br><br>
<input name="csv" type="file" id="csv" />
<input type="submit" name="Submit" value="Importeer" />
</form>
</body>
</html>
Misschien niet de beste oplossing maar voor mij werkte het wel
Link gekopieerd