Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Rozbijanie rekordu po każdym wystąpieniu znaku
someone.cool
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 1
Dołączył: 31.01.2009

Ostrzeżenie: (0%)
-----


Witam!
przez rok wpisano 2000 przesyłek. Problem w tym, że w paczkach było wysyłanych parę pozycji (do 10 sztuk, a liczba znaków pozycji 1-4) i numery zamówień każdej pozycji były zapisywane po przecinku.

Ma ktoś może jakiś pomysł, żeby porozbijać to tak, aby każda pozycja książkowa była osobno zapisana?


jest:
paczka | nr.egzeplarza
--------------------------
123456 | 9,10,11
654321 | 7594,324

a ma być:

paczka | nr.egzeplarza
--------------------------
123456 | 9
123456 | 10
123456 | 11
654321 | 7594
654321 | 324

próbowałem left'em, right'em... substring'iem też nie da rady, bo zmienna ilość znaków jest.

Ten post edytował someone.cool 13.03.2009, 01:37:55
Go to the top of the page
+Quote Post
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


pomijając wydajność rozwiązania to pierwszym i najprostszym (tymbardziej, że to i tak ma byc operacja jednorazowa) rozwiązaniem było by chyba pobieranie w pętli pojedynczego argumentu paczka i pojedyńczego nr.egzeplarza za każdym razem pobierając kolejne większe "paczka" (w końcu po czymś trzeba iść) do PHP i nr.egzeplarza rozbić explode() otrzymując tablicę nr.egzeplarza[] i majac konkretny "paczka" i kilka wartości "nr.egzeplarza" zrobić foreach po tablicy "nr.egzeplarza" (bądź przelecieć to w innej pętli) i w tym foreach wysyłać kolejno do bazy (raczej innej tabeli a starą potem usuniesz) argument "paczka" i kolejny argument "nr.egzeplarza"

żeby to trochu przyśpieszyć z mniejsza ilością zapytań do bazy to można by kolejno pobierać w petli nie pojedyńczo a większą ilość rekordów z bazy -> po pobraniu rekordów pasuje to "przelecieć" w pętli po "paczka" i następnie kolejno dla każdej "paczka" przelecieć po kolejnej pętli po "nr.egzeplarza" i w tej wewnętrznej petli dopiero wysłać wartości do bazy danych [czyli tutaj były by w sumie 3 pętle (2 wewnątrz)] - pobierając po np. 300 lub wiecej rekordów nastepnie zapisując serją jak najbardziej do takiej serji danych bedzie wskazane urzycie tranzakcji
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 00:18