ФорумПрограммированиеPHP для идиотов → Удаление строки из файла

Удаление строки из файла

  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 11 апреля 2011 г. 18:05

    Отрабатывает проверку от 0 до 288 и всё. Потом работать перестает. При чём ни ошибки, просто вот как зашито где-то. Может я чего-то где-то недосмотрел? с fwrite пробовал тоже самое. Дальше скрипт продолжает работать, но на этом участке дальше $i = 288 не идёт.

    	$hr = @file('price/' . $filename . '.csv');
    if(!$hr) {
    echo("error");
    } else {
    echo "<hr />";
    for($i=0; $i < count($hr); $i++) {
    $siska = explode(";", $hr[$i]);
    echo $i . " search " . $siska[0] . " - " . $siska[3] . ', find: <br />';
    $query = mysql_query("select p.productID, p.name, c.optionID, c.productID, c.option_value from ".$main['prefix']."products p, ".$main['prefix']."product_options_values c where p.name = '" . $siska[0] . "' and c.productID = p.productID and c.optionID = 5 and c.option_value = '". $siska[3] ."'");

    while ($row = @mysql_fetch_array($query)) {

    if(!empty($row['option_value'])) {
    $query_otp4 = mysql_query("select optionID, productID, option_value from ".$main['prefix']."product_options_values where optionID = '4' and productID = '" . $row['productID'] . "'");
    while ($row_otp4 = @mysql_fetch_array($query_otp4)) {
    $opt1 = $row_otp4['option_value'];
    }
    $query_otp7 = mysql_query("select optionID, productID, option_value from ".$main['prefix']."product_options_values where optionID = '7' and productID = '" . $row['productID'] . "'");
    while ($row_otp7 = @mysql_fetch_array($query_otp7)) {
    $opt2 = $row_otp7['option_value'];
    }
    $query_otp8 = mysql_query("select optionID, productID, option_value from ".$main['prefix']."product_options_values where optionID = '8' and productID = '" . $row['productID'] . "'");
    while ($row_otp8 = @mysql_fetch_array($query_otp8)) {
    $opt3 = $row_otp8['option_value'];
    }
    $query_otp1 = mysql_query("select optionID, productID, option_value from ".$main['prefix']."product_options_values where optionID = '1' and productID = '" . $row['productID'] . "'");
    while ($row_otp1 = @mysql_fetch_array($query_otp1)) {
    $opt4 = $row_otp1['option_value'];
    }

    if($opt2 == $siska[1] AND $opt3 == $siska[2]) {

    unset($hr[$i]);
    $gomno = fopen('price/' . $filename . '.csv','w+');
    fputs($gomno, implode("",$hr));
    fclose($gomno);

    }

    }
    }
    }
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 11 апреля 2011 г. 18:36, спустя 30 минут 28 секунд

    developer, а что у тебя в 288 строке самого файла?
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 11 апреля 2011 г. 18:54, спустя 18 минут 12 секунд

    RY818 Delivery Star;195;70;15C;104/102R;Yokohama;12;840;лето

    ничего особенного, как и везде
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 11 апреля 2011 г. 18:59, спустя 4 минуты 45 секунд

    [man]fgetcsv[/man]
    Сапожник без сапог
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 11 апреля 2011 г. 19:02, спустя 3 минуты 15 секунд

    если сделать так то проходит всё что нужно, но удаляет записи из файла как попало, оставляя то чо не нужно, а то что нужно не оставляет


    function delline($filenames,$line_no) {

    $data = file($filenames);
    unset($data[$line_no]);

    $gomno = fopen($filenames,'w+');
    fputs($gomno, implode("",$data));
    fclose($gomno);

    return TRUE;
    }

    delline('price/' . $filename . '.csv',$i);
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 11 апреля 2011 г. 19:03, спустя 27 секунд

    Для начала прибей собачек
    не всё полезно, что в swap полезло
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 11 апреля 2011 г. 19:40, спустя 37 минут 7 секунд

    поубирал. если из первоначального скрипта выше удаляю
    unset($hr[$i]);
    то отрабатывает все 577 строк (с 0 по 576) файла

    что может быть не так, ума не приложу.
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 11 апреля 2011 г. 19:43, спустя 3 минуты 26 секунд


    Для начала прибей собачек

    собчак?
    ιιlllιlllι унц-унц
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 11 апреля 2011 г. 19:45, спустя 2 минуты 20 секунд

    если из первоначального скрипта выше удаляю
    unset($hr[$i]);
    то отрабатывает все 577 строк (с 0 по 576) файла

    ну так если всё работает то и запускай код и не парься
    Спустя 76 сек.
    artoodetoo,
    не всё полезно, что в swap полезло
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 11 апреля 2011 г. 19:46, спустя 42 секунды


    если из первоначального скрипта выше удаляю
    unset($hr[$i]);
    то отрабатывает все 577 строк (с 0 по 576) файла

    ну так если всё работает то и запускай код и не парься
    Спустя 76 сек.
    artoodetoo,



    так не удаляет нужные строки!
  • Yasumi

    Сообщения: 28 Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 22:03, спустя 495 дней 2 часа 16 минут

    До чего же одинаков
    Ваш характер заводной!
    Стань сначала, милка, раком,
    А потом моей женой!

Пожалуйста, авторизуйтесь, чтобы написать комментарий!