Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Экспорт CSV файла, локально работает а в Интернет нет
 
 автор: Den*s   (26.04.2008 в 17:22)   письмо автору
 
 

Здравствуйте.
Написал экспорт CSV файла, локально всё работает отлично, проверял на нескольких компьютерах.
Файл экспортируется в базу.
Когда это всё работает в инете, то почему то часть ячеек не экспортируется, при чём каждый раз разные. Там есть столбец с такими названиями:
Ваз 2111
Ваз 2112
Ваз 21099
и т.д.
В базу записывается только цифпы, т.е.
2111
2112
21099
Но локально всё работает.
Не могу понять с чем это связано, подскажите

   
 
 автор: ddhvvn   (26.04.2008 в 19:19)   письмо автору
 
   для: Den*s   (26.04.2008 в 17:22)
 

Возможно проблема в локали

   
 
 автор: mihdan   (27.04.2008 в 12:01)   письмо автору
 
   для: Den*s   (26.04.2008 в 17:22)
 

Скрипт, код, пример, ошибка???? Телепатов не встречал)))

   
 
 автор: Den*s   (28.04.2008 в 16:34)   письмо автору
 
   для: mihdan   (27.04.2008 в 12:01)
 

Дело в том что в строчке есть 5 столбцов, и иногда может записаться только одна ячейка, вот скрипт который на денвере работает нормально, без сбоев

$count_mas=$k; $k=0; $mas_csv=""; $write_bool=""; $d=0; $record_base="";
 if ($filename) if ($message=="")
  {
   $fd=@fopen($filename, "r");
   while ($data=fgetcsv($fd, 1000, ";"))
    {
     foreach($data as $element) { $mas_csv[$k]=$element; $k++; }
     //находим в файле одинаковык записи----
     $record_base="";
     $record_file[$d]=$mas_csv[0].$mas_csv[1].$mas_csv[2].$mas_csv[3].$mas_csv[4];
     for ($i=0; $i<$d; $i++)
      if ($record_file[$i]==$record_file[$d] && $i!=$d) $record_base="no";
     $d++;
     if ($record_base!="no") {
     //-------------------------------------
     $k=0; 
     for ($t=0; $t<$count_mas; $t++) 
     if ($kat_nomer_array[$t]==$mas_csv[0] && $kratko_array[$t]==$mas_csv[1] && $podrobno_array[$t]==$mas_csv[2] &&
         $cena_array[$t]==$mas_csv[3] && $marka_array[$t]==$mas_csv[4]) $write_bool="no";
     if ($write_bool=="") {
     $query = "INSERT INTO towar (kat_nomer, kratko, podrobno, cena, marka)  
               VALUES ('$mas_csv[0]', '$mas_csv[1]', '$mas_csv[2]', '$mas_csv[3]', '$mas_csv[4]' ) ";
     if(!mysql_query($query)) exit(mysql_error());  } } // исключение совпадений
     $write_bool="";
    }
   }
 @fclose($fd);
 @unlink($filename);
 if ($message!="") print $message;
//--------------------------------------

где $count_mas кол-во строк в таблице

   
 
 автор: Den*s   (28.04.2008 в 16:58)   письмо автору
 
   для: Den*s   (28.04.2008 в 16:34)
 

И ещё момент
На том хостинге, где сайт тестировался всё работает отлично, как только его слили на другой хостинг начались косяки, в суппорте говорят, что никаких запретов они не ставили
Что делать

   
 
 автор: Den*s   (28.04.2008 в 18:04)   письмо автору
 
   для: Den*s   (28.04.2008 в 16:58)
 

Очень нужно исправить это, подскажите

   
 
 автор: mihdan   (28.04.2008 в 18:26)   письмо автору
 
   для: Den*s   (28.04.2008 в 16:34)
 

Во-первых

<?
while (($data fgetcsv($handle1000",")) !== FALSE) {
?>


Во-вторых

> находим в файле одинаковык записи----

<?
array_unique
();
?>

   
 
 автор: Den*s   (28.04.2008 в 20:56)   письмо автору
 
   для: mihdan   (28.04.2008 в 18:26)
 

теперь ошибки:

Warning: fgetcsv() expects parameter 1 to be resource, string given in Z:\home\profituning.ru\www\_img\tuning.php on line 159

Warning: Invalid argument supplied for foreach() in Z:\home\profituning.ru\www\_img\tuning.php on line 161


где строки

159           while (($data = fgetcsv(fd, 1000, ",")) !== FALSE) 
160              {
161                   foreach($data as $element) { $mas_csv[$k]=$element; $k++; }

   
 
 автор: Den*s   (28.04.2008 в 21:08)   письмо автору
 
   для: Den*s   (28.04.2008 в 20:56)
 

Эти ошибки справил и вставил вышеприведённые скрипты
всё равно не работает :(

   
 
 автор: [Atheist]   (28.04.2008 в 21:40)
 
   для: Den*s   (28.04.2008 в 21:08)
 

> fgetcsv(fd, 1000, ",")
fgetcsv($fd, 1000, ",")

   
 
 автор: Den*s   (28.04.2008 в 21:44)   письмо автору
 
   для: [Atheist]   (28.04.2008 в 21:40)
 

Эти ошибки я исправил
Там ещё вместо "," должно быть ";"
Не могу понять почему на другом хостинге всё путём и локально тоже работает нормално, а именно на этом вот такие глюки.
Может это в апаче стоят запреты?

   
 
 автор: [Atheist]   (28.04.2008 в 21:56)
 
   для: Den*s   (28.04.2008 в 21:44)
 

> именно на этом вот такие глюки
Ошибка, связанная с $fd - явно будет на любом хостинге, хотя может и не отображаться.

А вот тот факт, что вылезла ошибка с foreach, очень странный: fgetcsv() обязана вернуть FALSE (читай в мануале). Может версия старая, не знаю. Но если возвращает FALSE, то при таком коде ну никак дело до foreach не дойдет.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования