Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przemieszczanie danych
Forum PHP.pl > Forum > Bazy danych > MySQL
paw_sw
Witam mam problem z przeniesieniem danych ktore otrzymuje do bardziej optymalnej struktury smile.gif
dane ktore otrzymuje po zapisanie w bazie wygladaj tak jak ponizej


id | name | czas | dzien |
1 | name1 | 12:40 | poniedzialek |
2 | name1 | 13:40 | wtorek |
3 | name1 | 12:40 | sroda |
4 | name1 | 15:40 | czwartek |
5 | name1 | 12:40 | piatek |
6 | name1 | 12:40 | sobota |
7 | name1 | 13:20 | niedziela |

i potem to samo z name2 z innymi czasami

jak wiec przenies te dane zeby wygladaly tak

id | name | poniedzialek| wtorek|sroda|czwartek|piatek|sobota|niedziela|
1 name1 12:40 13:40 12:40
2 name2
itd.

z gory dziekuje za pomoc, pozdrawiam
TheTester
Nie wiem czy dobrze zrozumiałem o co chodzi, ale ja bym po prostu stworzył docelową tablę i przeniósł dane za pomocą skryptu pośredniczącego (np. PHP). Czyli wpierw pobieramy wszystkie dane ze starej tabeli, przerzucamy do tablicy i później odpowiednio ją wkładamy wkładamy do nowej.
paw_sw
problem jest w tym ze tych danych jest od 5000 do 200 000 rekordow i pare mega to zajmuje, php wymieka bo przeciaza zmienna, niestety posiadam server na home i raczej nie moge tego zmienic
wookieb
Cytat(paw_sw @ 16.11.2010, 23:32:50 ) *
problem jest w tym ze tych danych jest od 5000 do 200 000 rekordow i pare mega to zajmuje, php wymieka bo przeciaza zmienna, niestety posiadam server na home i raczej nie moge tego zmienic

Bez problemu można to wykonać ale krok po kroku. Najprościej to:
Pobrać liste nazw
  1. SELECT nazwa FROM tabela GROUP BY nazwa


Iterować po wyniku i dla każdej nazwy pobrać wszystkie terminy
  1. SELECT czas FROM tabela
  2. WHERE nazwa = "twoja_nazwa"

Z wyniku tworzysz odpowiednia tablice i wrzucasz insertem.
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.