Скрипт не передает данные из массива - MySQL
Формулировка задачи:
Всем привет, в общем сделал php скрипт, который должен из csv файла брать данные и закидывать в таблицу в MySQL.
Проблема в том, что он из всех данных передает только первый столбец. Первый столбец в моем случае - просто id ячейки (1, 2, 3 И так далее). Посмотрите, пожалуйста, где косяк?
<html> <body> <form action="" method="post" enctype="multipart/form-data"> Choose your file: <br /> <input name="csv" type="file" id="csv" /> <br /> <br /> <input type="submit" name="Submit" value="Submit" /> </form> </body> </html> <?php $host = "localhost"; $user = "root"; $pass = ""; $db = "my_bd"; $con = mysql_connect($host, $user, $pass); if (!$con) { echo "Could not connect to server\n"; die(mysql_error()); } else { echo "Соединение установлено\n"; } $con1 = mysql_select_db($db); //if (!$con1) { // echo "Cannot select database\n"."<br>"; // die(mysql_error()); //} else { // echo "Database selected\n"."<br>"; //} if ($_FILES[csv][size] > 0) { $file = $_FILES[csv][tmp_name]; if (($handle = fopen($file, "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $sql = "INSERT INTO cars (id, город, марка, модель, год, цена, кузов, объем, топливо, кпп, руль, цвет, пробег, телефон) VALUES ('".mysql_escape_string($data[0])."','".mysql_escape_string($data[1])."', '".mysql_escape_string($data[2])."','".mysql_escape_string($data[3])."', '".mysql_escape_string($data[4])."','".mysql_escape_string($data[5])."', '".mysql_escape_string($data[6])."','".mysql_escape_string($data[7])."', '".mysql_escape_string($data[8])."','".mysql_escape_string($data[9])."', '".mysql_escape_string($data[10])."','".mysql_escape_string($data[11])."', '".mysql_escape_string($data[12])."','".mysql_escape_string($data[13])."')"; $query = mysql_query($sql); } if($query){ echo " ..данные вставлены\n"; } else{ echo die(mysql_error()); } fclose($handle); }} ?>
Решение задачи: «Скрипт не передает данные из массива»
textual
Листинг программы
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
Объяснение кода листинга программы
- В цикле while происходит чтение данных из файла, который открыт для чтения с помощью функции fopen.
- Функция fgetcsv используется для чтения данных из файла и преобразования их в массив.
- Параметр $handle указывает на файл, который открыт для чтения.
- Параметр 1000 указывает на максимальное количество строк, которые можно прочитать за одну операцию.
- Параметр
,
указывает на разделитель, который используется в файле для разделения данных. - Условие !== FALSE проверяет, что данные успешно считаны из файла.
- Каждая итерация цикла while обрабатывает одну строку данных из файла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д