Я изо всех сил пытаюсь загрузить информацию из файла csv с помощью PHP и хочу сохранить содержимое csv (номера мобильных телефонов) в таблицу базы данных mysql. Содержимое файла выглядит следующим образом:
Содержимое файла CSV (отдельная запись в одной строке без запятых)
44762126064
447508751
4474669756
44771466603
444584871
445574805
447455471039
44777451345
447460345819
44793342963
44734838672
44752845528
4474537291
44779645078
Я пытаюсь загрузить файл csv с помощью формы и отправить. Код читает файл csv и пытается записать содержимое в таблицу mysql. Проблема в том, что код возвращает все записи csv в одном элементе массива, например:
Array(
[0] => 44762126064 447508751 4474669756 44771466603 444584871 445574805 447455471039 44777451345 447460345819 44793342963 44734838672 44752845528 4474537291 44779645078
);
и вставка всего массива в виде одной записи, а не одного мобильного номера на строку в таблице mysql.
Код :
if (isset($_POST['submit'])) {
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>";
echo "<h2>Displaying contents:</h2>";
# readfile($_FILES['filename']['tmp_name']);
}
//Import uploaded file to Database
$handle = fopen($_FILES['filename']['tmp_name'], "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$import="INSERT into mobilecsv(phoneMobile,status) values('$data[0]',0)";
mysql_query($import) or die(mysql_error());
}
fclose($handle);
print "Import done";
}
Я пробовал explode()
, array_slice()
и т. д., но ни один из них не помог мне разделить содержимое этого массива, чтобы сохранить его как отдельные записи/номера телефонов в базе данных mysql.
Как я могу разделить отдельное содержимое первого элемента массива (как в моем случае), чтобы сохранить его как отдельные отдельные записи, которые появляются в моем CSV? Я новый программист и был бы признателен за вашу помощь в этом отношении. Спасибо
$lines = file('whatever.csv'); foreach($lines as $line) { insert into db }
- person Marc B   schedule 13.08.2014$lines = array();
Где-то перед циклом while. И добавьте это$lines[] = $data[0];
внутрь цикла while. Затем вы можетеprint_r()
илиvar_dump
массив$lines
после цикла while все телефонные номера в правильном массиве. - person Rimble   schedule 13.08.2014