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

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

  • developer

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

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

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

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

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

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

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

    unset($hr[$i]);
    $gomno = fopen(&#39;price/&#39; . $filename . &#39;.csv&#39;,&#39;w+&#39;);
    fputs($gomno, implode(&quot;&quot;,$hr));
    fclose($gomno);

    }

    }
    }
    }
  • Givi

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

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

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

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

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

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

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

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

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

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

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

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

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


    function delline($filenames,$line_no) {

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

    $gomno = fopen($filenames,&#39;w+&#39;);
    fputs($gomno, implode(&quot;&quot;,$data));
    fclose($gomno);

    return TRUE;
    }

    delline(&#39;price/&#39; . $filename . &#39;.csv&#39;,$i);
  • master

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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



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

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

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

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

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