Нужно сохранить выборку из MySQL в .тхт

Тема в разделе "Как сделать...", создана пользователем ctx79, 5 июл 2013.

Статус темы:
Закрыта.
  1. ctx79

    ctx79 Создатель

    Регистр.:
    25 авг 2006
    Сообщения:
    31
    Симпатии:
    1
    Возникла следующая задача. Есть БД, из нее делается выборка, получается порядка 200к строк. Нужно эти строки, после определенных манипуляций (дописать кое-чего), сохранить в текстовые файлики, по 10к строчек. Подскажите с чего начать и куда копать.

    UPD:
    Ёперный театр - все оказалось куда проще чем казалось. Спасибо. Тему можно закрыть.
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.405
    Симпатии:
    1.185
    Таким темам место в разделе Как сделать...

    Значит цикл уже есть?
    добавь куантер $i++;
    И если $i == 10000; произведи запись в файл file_put_contents(), накопленное в переменной значение, обнулив её после.
     
  3. ctx79

    ctx79 Создатель

    Регистр.:
    25 авг 2006
    Сообщения:
    31
    Симпатии:
    1
    Не цикл. Выборка простая - "select column from db".
    Если я правильно понял - то эту выборку можно сохранить в текстовый файлик, а потом уже разобрать циклом с каунтером?
     
  4. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.405
    Симпатии:
    1.185
    Не правильно поняли.

    Продемонстрирую кодом:
    PHP:
    <?
    $conn mysql_connect("localhost""mysql_user""mysql_password");

    if (!
    $conn) {
        echo 
    "Unable to connect to DB: " mysql_error();
        exit;
    }

    if (!
    mysql_select_db("mydbname")) {
        echo 
    "Unable to select mydbname: " mysql_error();
        exit;
    }

    $sql "SELECT id as userid, fullname, userstatus
            FROM   sometable
            WHERE  userstatus = 1"
    ;

    $result mysql_query($sql);

    if (!
    $result) {
        echo 
    "Could not successfully run query ($sql) from DB: " mysql_error();
        exit;
    }

    if (
    mysql_num_rows($result) == 0) {
        echo 
    "No rows found, nothing to print so am exiting";
        exit;
    }

    // До тех пор, пока в результате содержатся ряды, помещаем их в ассоциативный массив.
    // Замечание: если запрос возвращает только один ряд - нет нужды в цикле.
    // Замечание: если вы добавите extract($row); в начало цикла, вы сделаете
    //            доступными переменные $userid, $fullname и $userstatus
    $i $p 0$buffer '';
    while (
    $row mysql_fetch_assoc($result)) {
        
    $i++;
        
    //Здесь можно обработать данные перед добавлением в строку
        
    $buffer .= $row["userid"] . $row["fullname"] . $row["userstatus"];
        
        if (
    $i 10000 0) {
          
    $p++;
          
    file_put_contents('file-' $p '.txt'$buffer);
          
    $buffer '';
        }
    }

    mysql_free_result($result);
    http://www.php.net/manual/ru/function.mysql-fetch-assoc.php - почти весь код отсюда
     
    ctx79 нравится это.
Статус темы:
Закрыта.