Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> В чем ошибка при импорте из csv?, если перед русским словом нет символа он не сохраняется...
Strannik  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 7 лет, 8 месяцев, 21 день
Карма: 0




Добрый день не могу понять.
Код:
function conn()
{
$link = mysql_connect('.....','.....','.....') or die (mysql_error());
mysql_select_db('.....', $link);
mysql_query ("SET NAMES utf8");
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
};
conn();
$filename="abase/work/base_csv.csv";
$handle = fopen("$filename", "r");
while (($data = fgetcsv($handle, 1000000, ";")) !== FALSE)
{
$sql="SELECT * FROM `user_info` WHERE `account` = '$data[2]'";
$res=mysql_query($sql);
if(!$res||mysql_num_rows($res)<1)
{$import_user_info="INSERT INTO `user_info`(`fio`, `account`, `living_space`, `occupancy`, `adress`, `telefone`, `mobile`, `email`, `icq`, `password`, `password_temp`, `status`) VALUES ('".mysql_real_escape_string($data[3])."', '$data[2]', '', '', '$data[4]', '', '', '', '', '', '', 'user')";}
else{$import_user_info="UPDATE `user_info` SET `fio` = '$data[3]', `account` = '$data[2]', `adress` = '$data[4]'";}
$res4=mysql_query($import_user_info);
}
}
fclose($handle);
echo'<br>Импорт завершен...';


$data[2] - это ФИО человека по - русски(например Иванов Иван Иванович).
Почему то если не идет импорт именно этого параметра, однако заметил, что если перед ФИО поставить символ(например 2Иванов Иван Иванович), то импорт базу данных проходит нормально и ФИО импортируется...

Подскажите почему так?
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14965
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 26 дней
Карма: 443




Что такое "импорт" - fgetcsv? Покажи целиком строку, которую импортируешь.

И кстати, при апдейте надо обязательно указать условие WHERE, иначе ты установишь все строки в таблице, сделаешь их одинаковыми smile.gif


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Strannik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 7 лет, 8 месяцев, 21 день
Карма: 0




это первые 2 строчки из csv
01.05.2012 0:00;31.05.2012 23:59;1000540047;Ф И О;г Москва, ул КУЗНЕЦОВА, д.;0;0;0;0;0;0;;;;;
01.05.2012 0:00;31.05.2012 23:59;1004301248;Юрьева Марина Николаевна;432030, Московская обл, г Москва, б-р Архитекторов, дом № 5, кв.20;0;0;0;0;0;0;;;;;
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









никто не знает???
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
m4a1fox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5211
Пользователь №: 24565
На форуме: 6 лет, 1 месяц, 7 дней
Карма: 60

Не пью :
4 года, 1 месяц, 28 дней


ИМХО! Кажется это пустота приходит.
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14965
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 26 дней
Карма: 443




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

Свернутый текст
$handle = fopen( $filename, "r");
while (($data = fgetcsv($handle, 1000000, ";")) !==false)
{
$insert_user_info="INSERT INTO `user_info`(`fio`, `account`, `living_space`, `occupancy`, `adress`, `telefone`, `mobile`, `email`, `icq`, `password`, `password_temp`, `status`) VALUES ('".mysql_real_escape_string($data[3])."', '$data[2]', '', '', '$data[4]', '', '', '', '', '', '', 'user')";
$update_user_info="UPDATE `user_info` SET `fio` = '$data[3]', `account` = '$data[2]', `adress` = '$data[4]' WHERE какое_то_условие_для_выбора_нужной_строки";

echo "insert: $insert_user_info<br>update: $update_user_info<br>";
}



Попробуй эти команды, что получишь, вручную позапускать. И посмотри, какая из них не пойдет. Её и давай сюда, будем смотреть.

И обрати внимание - $filename не надо заключать в двойные кавычки!!! Так тоже будет работать, но это неправильно.

И еще!!!!! Для апдейта обязательно пиши условие. Иначе "обновишь" все строки в таблице. Сколько бы их ни было, но все станут одинаковые :) Затрёшь всё, что было.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Strannik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 7 лет, 8 месяцев, 21 день
Карма: 0




Получаю такой результат :

insert: INSERT INTO `user_info`(`fio`, `account`, `living_space`, `occupancy`, `adress`, `telefone`, `mobile`, `email`, `icq`, `password`, `password_temp`, `status`) VALUES ('', '1000000001', '', '', ', ул КУЗНЕЦОВА, д.5А', '', '', '', '', '', '', 'user')
update: UPDATE `user_info` SET `fio` = '', `account` = '1000000001', `adress` = ', ул КУЗНЕЦОВА, д.5А' WHERE какое_то_условие_для_выбора_нужной_строки


такое ощущение, что он не читает $data[2]...
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14965
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 26 дней
Карма: 443




ОК. Тогда упрости цикл до такого:

while (($data = fgetcsv($handle, 1000000, ";")) !==false)
{
echo '<pre>'.print_r( $data, true).'</pre>';
}


и ты увидишь, что же у тебя читается в какие поля.

У меня твой код исправно считал те 2 строки, что ты предоставил.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Strannik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 7 лет, 8 месяцев, 21 день
Карма: 0




sergeiss
спасибо за подсказки, я недавно вспомнил об одном случае: делал сайт и почему то дамп тоже не шел, система была на вордпресс. Я тогда дня 3 убил, потом нашел статейку про возможные ошибки.
Если в кратце - если сервер сам собираешь или сервак забугорный нужно смотреть(установить), чтобы там стояла локаль(locale) ru.RU_CP1251(может кому и пригодится).

В этом и оказалась причина.
Более подробно можно прочитать здесь

P.S.: sergeiss
признателен за подсказки)
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса