Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rozbijanie rekordu po każdym wystąpieniu znaku
Forum PHP.pl > Forum > Bazy danych > MySQL
someone.cool
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.
zegarek84
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
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.