Прочтите и отсортируйте перед сохранением записей.

  • Автор темы dobr9k
  • 14
  • Обновлено
  • 15, May 2024
  • #1
Всем привет!! У меня есть это:
 if(file_exists("filename.csv")) {

$registro = fopen("filename.csv", "r");

$BD = new ConexionDB();

while (($data = fgetcsv($registro, 200, ",")) !== FALSE) {

$sth = $BD->prepare("INSERT INTO table_temp (codigo, name) VALUES (:codigo, :name)");

$codigo = $data[0];

$name = $data[1];

$sth->bindParam(':codigo', $codigo);

$sth->bindParam(':name', $name);

$sth->execute();

}

}
PHP: исходные данные (csv) не отсортированы. Я хочу отсортировать данные из «codigo», прежде чем вставлять их в таблицу. Как мне это сделать?? Спасибо.

dobr9k


Рег
14 Nov, 2014

Тем
1

Постов
3

Баллов
13
  • 09, Jun 2024
  • #2
Ну да, но это все равно не имеет большого значения - если вам нужна сортировка, опять же, просто сортируйте ее, когда вы используете таблицу (хотя, если нет тысяч записей, все они будут затронуты, опять же, это не особо важно). это имеет большое значение).

Однако, если вы действительно хотите отсортировать его перед вводом, вы можете сделать это (это работает, однако это может быть немного громоздко - я устал)

 

<?php

if(file_exists("filename.csv")) {

$BD = new ConexionDB();

$data = file("filename.csv");

foreach ($data as $key => $value) {

$content = explode(",",$value);

$newdata[$content[0]] = str_replace('"','',$content[1]);

}

ksort($newdata);

$sth = $BD->prepare("INSERT INTO table_temp (codigo, name) VALUES (:codigo, :name)");

foreach ($newdata as $key => $value) {

$codigo = $key;

$name = $value;

$sth->bindParam(':codigo', $codigo);

$sth->bindParam(':name', $name);

$sth->execute();

}

}

?>

PHP:
 

SegaOF


Рег
06 Jan, 2016

Тем
1

Постов
3

Баллов
13
Тем
49554
Комментарии
57426
Опыт
552966

Интересно