|
|
|
| Здравствуйте.
Написал экспорт CSV файла, локально всё работает отлично, проверял на нескольких компьютерах.
Файл экспортируется в базу.
Когда это всё работает в инете, то почему то часть ячеек не экспортируется, при чём каждый раз разные. Там есть столбец с такими названиями:
Ваз 2111
Ваз 2112
Ваз 21099
и т.д.
В базу записывается только цифпы, т.е.
2111
2112
21099
Но локально всё работает.
Не могу понять с чем это связано, подскажите | |
|
|
|
|
|
|
|
для: Den*s
(26.04.2008 в 17:22)
| | Возможно проблема в локали | |
|
|
|
|
|
|
|
для: Den*s
(26.04.2008 в 17:22)
| | Скрипт, код, пример, ошибка???? Телепатов не встречал))) | |
|
|
|
|
|
|
|
для: 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:34)
| | И ещё момент
На том хостинге, где сайт тестировался всё работает отлично, как только его слили на другой хостинг начались косяки, в суппорте говорят, что никаких запретов они не ставили
Что делать | |
|
|
|
|
|
|
|
для: Den*s
(28.04.2008 в 16:58)
| | Очень нужно исправить это, подскажите | |
|
|
|
|
|
|
|
для: Den*s
(28.04.2008 в 16:34)
| | Во-первых
<?
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
?>
|
Во-вторых
> находим в файле одинаковык записи----
| |
|
|
|
|
|
|
|
для: 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 в 20:56)
| | Эти ошибки справил и вставил вышеприведённые скрипты
всё равно не работает :( | |
|
|
|
|
автор: [Atheist] (28.04.2008 в 21:40) |
|
|
для: Den*s
(28.04.2008 в 21:08)
| | > fgetcsv(fd, 1000, ",")
fgetcsv($fd, 1000, ",") | |
|
|
|
|
|
|
|
для: [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 не дойдет. | |
|
|
|