Команды php или mysql - данные из строки mysql в текстовый файл - PullRequest
0 голосов
/ 08 августа 2009

Как мне получить все данные из одной строки из таблицы MySQL, экспортированные в текстовые файлы, но отформатированные следующим образом:

  • одно поле под другим, по одному на строку
  • Я хотел бы разбить эти данные на части и сохранить, например, 50 строк в file1.txt, затем следующие 50 в file2.txt и так далее до конца (это не округленное число, поэтому последний файл, вероятно, будет иметь меньше строк)
  • не копировать идентичные записи / удалять дубликаты

... используя скрипт php или просто консоль mysql?

Ответы [ 2 ]

2 голосов
/ 08 августа 2009

Я мог бы сделать это так, используя клиент командной строки:

$ mysql --user=XXX --password=XXX --batch --skip-column-names \
  -e "SELECT userid, displayname FROM Users" stackoverflowdb | \
split -l 50 -a 5 - "result."
0 голосов
/ 08 августа 2009

Я ненавижу делать домашнее задание / работу, но это слишком просто.

    <?

    $row = mysql_fetch_array($rc);

    $nodupes = array();
    foreach ($row as $field)
    {
        $nodupes[$field] = $field;
    }

    $i = 1;
    $filenum = 0;
    $line = 50 ; // create new file ever 50 lines
            $text = "";
    foreach($nodupes as $field)
    {
        $i++;
        $text .= "$field\n";

        // to split into bite size peices
        if ($i % $line == 0)
        {
            $filenum++;
            $filename = "myfile_$filenum.txt";
            file_put_contents($filename,$text);
            $text = "";
        }
    }
    $filenum++;
    $filename = "myfile_$filenum.txt";
    file_put_contents($filename,$text);
    ?>

Так что ешьте сегодня и учитесь ловить рыбу в другой день!

...