Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: podczas importu pliku w komórce zamiast NULL są zera
Forum PHP.pl > Forum > Bazy danych
osmin
Witam,


przenoszę bazę danych z jednego cmsa do drugiego (joomla). Mam już przerobiony plik z danymi:

przykładowy fragment wpisu: 19;57;1;2007-10-21;NULL;00:00:00;NULL; (...)

Pierwsze NULL jest w komórce, gdzie wpisywana jest data zakończenia, drugie NULL gdzie wpisywana jest godzina zakończenia. Gdy wczyta się cały plik, to zamiast NULL mam 0000:00:00 oraz 00:00:00. Mocno mi to komplikuje życie, gdyż te zera są wyświetlane i wychodzi głupota. Próbowałem poprawiać w phpmyadminie ale bez oczekiwanego rezultatu - są te nieszczęsne zera. Jedynie z poziomu CMSa mogę to poprawić. Ale poprawianie blisko 3000 rekordów nie jest zachęcające.

Czy istnieje jakiś sposób, by zautomatyzować tę czynność.
Co do Joomli, to chodzi mi tu o moduł EventList i wpisywanie zdarzeń.

Sprawdziłem, że interesujące mnie komórki dopuszczają wartość NULL
mam tak ustawione
http://img137.imageshack.us/my.php?image=nulllf3.jpg (na kolorowo są interesujące mnie komórki).
nevt
ale jak wciągasz te dane do nowej bazy? skryptem php czy przez phpMyAdmin czy jeszcze inaczej?
osmin
Dane pobieram z phpmyadmina
nevt
ale jak?? przez interfejs phpMyAdmin czy zapytaniem sql?? pokaż to zapytanie...

bo skoro masz plik w którym dane ładnie podzielane są średnikami to spróbuj to pobrać bezpośrednio z tego pliku poleceniem LOAD DATA INFILE ...
osmin
Z pierwszego cmsa zapisuje zawartość tabeli w formacie excel 2000. Tam dodaję swoje dane i uzupełniam poszczególne komórki (przenoszę dane pomiędzy różnymi cmsami). Potem zapisuję jako CSV (macintosh). Odpalam plik w Editplusie gdzie ustawiam wyrażenia regularne. I dopiero taki plik wczytuję do drugiego CMSa.
nevt
(powtarzam się) więc skoro masz ładnie przygotowany plik CSV to skorzystaj z dobrodziejstwa MySQL w postaci LOAD DATA INFILE i wciągnij te dane BEZPOŚREDNIO do bazy danych z pomięciem interfejsów CMS'a ... prawdopodobnie cms nie interpretuje napisu NULL jako prawidłowej daty lub czasu i przypisuje do pola zero...
osmin
dostaje taką oto informację:


Błąd
zapytanie SQL:

LOAD DATA INFILE 'c:\\koncerty.txt' INTO TABLE jos_eventlist_events

MySQL zwrócił komunikat:

#1045 - Access denied for user 'rrafaell_1'@'%' (using password: YES)
dr_bonzo
manual!

Also, to use LOAD DATA INFILE on server files, you must have the FILE privilege.
osmin
Jest jeszcze jedna rzecz, którą dopiero zobaczyłem wczoraj a dzięki której mogę ręcznie wpisywać NULL:

http://img252.imageshack.us/my.php?image=null1jv3.jpg

Jak zaznaczę pola z kolumny NULL, to się ustawia ta wartość. Ale jak to zrobić podczas importu lub później, ale z automatu, by wszystkie na raz włączyć (blisko 3000 rekordów).


EDIT:

porardziłem sobie komendą UPDATE.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.