I have a problem with a piece of code I wrote to import some records from a csv file into mysql. I have a .csv file with about 300 records in it. The code worked perfect while testing on 3 or 4 records. When I tried to import the entire list I ran into problems where there were gaps of records that had no data.
I tested some of the records that were being missed thinking that it was a charachter in the record making sql choke, but when I did blocks of 5 or 10 of the bad records they worked. This is the error message:
Warning: array_combine() [function.array-combine]: Both parameters should have an equal number of elements in
At some point the insert starts inserting records again and then it hits another block of errors. I am thinking this has to do with some kind of memory limit but the csv file is only 66kb.
Any ideas?
Here is the code
Code: [Select]$handle = fopen($_FILES['filename']['tmp_name'], "r");
if ($handle)
{
set_time_limit(0);
//the top line is the field names
$fields = fgetcsv($handle, 4096, ',');
//loop through one row at a time
while (($data = fgetcsv($handle, 4096, ',')) !== FALSE)
{
$data = array_combine($fields, $data);
// Create a Joomla Password and insert the un-encrypted and encryted+salt value into array
$password = generatePassword($length=9, $strength=4);
$data[password] = $password ;
require_once 'libraries/joomla/user/helper.php'; //Use Joomla function in order to salt the password and encrypt
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword($password, $salt);
$md5password = $crypt . ':' . $salt;
$data[md5password] = $md5password;
// Insert Customer info into jos_user table
$jos_users = sprintf("INSERT into jos_users_test(name,username,email,password,usertype,sendEmail,gid,registerDate) values('%s','%s','%s','%s','%s','%d','%d',NOW())",
sql_prep($data[Contact], $db),
sql_prep($data[Customer], $db),
$data[Email],
$data[md5password],
'Registered',
'1',
'18');
mysql_query($jos_users) or die(mysql_error());
Here is the output of the array, you can tell [15] doesn't have any of the data that [14]and all the rest have. Then it will pick up at some point and a bunch will have data and then it will choke again.
[14] => Array
(
[Customer] => XXXXXXXXX
[Contact] =>
[Phone] => XXXXXXXXXXXX
[Fax] =>
[Alt. Phone] =>
[Alt. Contact] =>
=> [email]tXXXXXX@yahoo.com
[Bill to 1] => XXXXX
[Bill to 2] => XXXXXXXXX
[Bill to 3] => XXXXXXXX
[Bill to 4] =>
[Bill to 5] =>
[Ship to 1] => XXXXXXX
[Ship to 2] => XXXXXXXXX
[Ship to 3] => XXXXXXXX
[Ship to 4] =>
[Ship to 5] =>
[password] => password
[md5password] => 461543387f04a4848d38a6d6fd7376cc:0GHs3PRXbdsqbeghoiZnKxJeudwAYtv3
)
[15] => Array
(
[password] => password
[md5password] => d2db7721b7df8f151ef342a3a72aa32d:bwGLFCJnCdDTjDZH2b5kqfIL5QJ3z42h
)
)
php problem?
I don't think I'm stupid, but maybe I am.I am working on a sit for a friend I am try to put a link on a page and it is not working in FireFox and Safari. It works in IE but nothing else.I can get it
Redirecting Admin
In my members table, I have a field called "perm" and it's set to zero for all members. However, I have two administrators, and theirs are set to 1.I want my members page that shows up on
FILTER_CALLBACK -- Files?
Hi All,I'm using the php filter functions to validate my form data. For custom filters, I'm using the FILTER_CALLBACK filter but when I'm using files, this never seems to be called? It may be that the
Multiple if statements
Ok so seems basic but for some reason I'm not doing it right. What I want is to be able to have 2 separate if statements in the same php document. What I've done is this:Code: if ($p1=='on' AND
Comparing Values
HiI'm reading data from a database and this seems to work OK.Each system has an associated series of references..Code:Code: $dn = "cn=System"; $filter="(objectclass=*)";
Parse error: parse error in C:wampwwwlogspagesmembers.php on line 16
I dont see the problem with this, I always get Parse error: parse error in C:\wamp\www\logs\pages\members.php on line 16, what did I do wrong?? <?php $sql = "SELECT *
Header is not working in IE
Hi ! header function is not working in IE but it works in FF, Safari, Chrome. any help please. :if (isset($_POST['sub1'])) { $id = $_POST['cscstest']; $qty = $_POST['cscsqty']; $id =
FAGL_FC_TRANSLATION FAS52 New GL ECC 6.0
Hello,
remove a ; from emails in textarea
Code: <?php session_start(); $database_host = "localhost"; $database_username = ""; $database_password = ""; $database_name =
problem with array - multilingual page
this is my test page :Code: <?php if(isset($_GET['lang'])) { if($_GET['lang'] == "en") { require_once("languages/lang-en.php"); }