$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);
}
}
}
}
Форум → Программирование → PHP для идиотов → Удаление строки из файла
Удаление строки из файла
-
Отрабатывает проверку от 0 до 288 и всё. Потом работать перестает. При чём ни ошибки, просто вот как зашито где-то. Может я чего-то где-то недосмотрел? с fwrite пробовал тоже самое. Дальше скрипт продолжает работать, но на этом участке дальше $i = 288 не идёт.
-
11 апреля 2011 г. 18:36, спустя 30 минут 28 секунд
developer, а что у тебя в 288 строке самого файла? -
11 апреля 2011 г. 18:54, спустя 18 минут 12 секунд
RY818 Delivery Star;195;70;15C;104/102R;Yokohama;12;840;лето
ничего особенного, как и везде -
-
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); -
11 апреля 2011 г. 19:03, спустя 27 секунд
Для начала прибей собачекне всё полезно, что в swap полезло -
11 апреля 2011 г. 19:40, спустя 37 минут 7 секунд
поубирал. если из первоначального скрипта выше удаляю
unset($hr[$i]);
то отрабатывает все 577 строк (с 0 по 576) файла
что может быть не так, ума не приложу. -
11 апреля 2011 г. 19:43, спустя 3 минуты 26 секунд
Для начала прибей собачек
собчак?ιιlllιlllι унц-унц -
11 апреля 2011 г. 19:45, спустя 2 минуты 20 секунд
если из первоначального скрипта выше удаляю
unset($hr[$i]);
то отрабатывает все 577 строк (с 0 по 576) файла
ну так если всё работает то и запускай код и не парьсяСпустя 76 сек.artoodetoo,не всё полезно, что в swap полезло -
11 апреля 2011 г. 19:46, спустя 42 секунды
если из первоначального скрипта выше удаляю
unset($hr[$i]);
то отрабатывает все 577 строк (с 0 по 576) файла
ну так если всё работает то и запускай код и не парьсяСпустя 76 сек.artoodetoo,
так не удаляет нужные строки! -
18 августа 2012 г. 22:03, спустя 495 дней 2 часа 16 минут
До чего же одинаков
Ваш характер заводной!
Стань сначала, милка, раком,
А потом моей женой!
Пожалуйста, авторизуйтесь, чтобы написать комментарий!