Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 16.05.2008 Ostrzeżenie: (0%)
|
Witam.
Jestem w miarę początkującym i doszedłem do problemu z którym nie mogę sobie poradzić, mianowicie: jest sobie baza danych SQL, jest skrypt PHP który ma za zadanie wczytanie danych z pliku XML. Plik XML - dość duży - około 16 tys pozycji. Skrypt 'leci' po kolei i wczytuje dane z pliku, jeśli tylko wyświetlam te dane to trwa to moment- natomiast gdy robię UPDATE do bazy trwa to bardzo długo i wysypuje się po pewnym czasie. Prawdopodobnie mam gdzieś błąd który zwalnia całą procedurkę - czy mogę prosić o pomoc forumowiczów ? CODE $data = simplexml_load_file(file.xml'); foreach($data -> produkty as $produkty) { foreach($produkty -> produkt as $produkt) { $id = (string) $produkt['id']; $cena_netto = (string) $produkt['cena_netto']; $dostepny = (string) $produkt['dostepny']; if ($dostepny>0) { $query = " UPDATE produkt SET wyswietlony=1,cena_netto='$cena_netto' WHERE kod_producenta LIKE '$id' "; $result = mysql_query($query) or die("Query UPDATE is failed"); } } } Ten post edytował JohnyBB 16.05.2008, 13:52:09 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 26 Dołączył: 19.01.2007 Ostrzeżenie: (0%)
|
Możesz robić wszystko ręcznie i wówczas LOAD DATA wykonujesz z MyAdmina. Wygodniej jest to umieścić na końcu skryptu który dokonuje konwersji na CSV. Musisz mieć ustawiony klucz unikalny oraz dodać parametr REPLACE do LOAD DATA jeżeli chcesz UPDATEować dane, w przeciwnym razie dane zostaną dopisane do tabeli. Więcej o load data możesz przeczytać tu
Modyfikacje kluczy możesz wykonywać na działającej bazie- z tym nie ma problemu. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 16.05.2008 Ostrzeżenie: (0%)
|
Możesz robić wszystko ręcznie i wówczas LOAD DATA wykonujesz z MyAdmina. Wygodniej jest to umieścić na końcu skryptu który dokonuje konwersji na CSV. Musisz mieć ustawiony klucz unikalny oraz dodać parametr REPLACE do LOAD DATA jeżeli chcesz UPDATEować dane, w przeciwnym razie dane zostaną dopisane do tabeli. Więcej o load data możesz przeczytać tu Modyfikacje kluczy możesz wykonywać na działającej bazie- z tym nie ma problemu. kurcze chyba w to się nie zagłębię - finalnie ma być to automatycznie uruchamiane przez usera... więc odpadają takie operacje... Kocurro: ad 1 - chodzi Ci o : simplexml_load_file ? to mało wydajne ? ad 2 - wstawiłem = zamieniłem stringi , tzn usunąłem te przekształcenia i zadziałało - jednak długo to trwa a problem jest ciekawy... Jak pisałem jestem noobem więc - dodaj klucze ? rozumiem ze do tabel ale w przypadku gdy jest źle zaprojektowana baza musiałbym całą zaprojektować od nowa a co za tym idzie przepisać cały kod - nie ma na to czasu niestety. Cytat powiedz jaka baza danych tzn jaka ? postgres mysql ? chodzi Ci o serwer? Cytat nie stosuj konstrukcji w PHP'ie " $zmienna " w jaki sposób mam to zastąpić ?Pozdrawiam |
|
|
|
JohnyBB Bardzo mała szybkość zapytań do SQL 16.05.2008, 13:36:23
kszychu Proszę poprawić bbcode. 16.05.2008, 13:45:41
batman No cóż. Skoro masz 16 tyś. pozycji to nie ma co si... 16.05.2008, 14:37:57
kitol Wg mnie. wykonywanie 16tys razy mysql_query jest n... 16.05.2008, 14:49:50
zimi jeśli jesteś baaaardzo początkujący to może musisz... 16.05.2008, 22:21:19
JohnyBB Przy każdym zapytaniu modyfikuję tylko jeden wiers... 17.05.2008, 04:15:59
Kocurro Po primo - używasz mało wydajnej metody by odczyty... 17.05.2008, 08:44:26
Shili Cytatw jaki sposób mam to zastąpić ?Z te... 17.05.2008, 14:02:40
em1X Lepiej pokaż strukturę Twojej tabeli. Źle zaprojek... 17.05.2008, 20:47:53
Kicok Oprócz powyższych porad spróbuj jeszcze zrobić coś... 18.05.2008, 13:06:58
batman Cytatad2 - można jaśniej ? jak uruchomić skrypt w ... 18.05.2008, 19:16:47
JohnyBB batman: to jest na virtualnym serwerze - więc na k... 19.05.2008, 06:41:55
em1X Cytat(JohnyBB @ 19.05.2008, 07:41:55 ... 19.05.2008, 21:06:06
yivan Z tego wszystkiego najwolniej działa mysql_query()... 20.05.2008, 10:43:17
JohnyBB em1x: nie chcę pokazywać bazy - powiedzmy że się w... 5.06.2008, 07:53:03 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 07:12 |