Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mysql i zapis do plikow, duza baza danych i podzial na pliki przez fwrite, jak?
deejay3
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 24.03.2005

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


witam,

mam dosc spora baze danych, powiedzmy 2tys rekordow. to musze zapisac do pliku, do jednego pliku to nie problem, tak mam zrobione, ale chcialbym podzielic ten odczyt na kilka(nascie) plikow po ustalonej ilsoci wpisow, powiedzmy 20 plikow po 100 wpisow w plikach zrzut1.txt, zrzut2.txt, ..., zrzut20.txt, tak, zeby za jednym kliknieciem "zapisz" pliki zapisywaly sie jeden po drugim aby na raz sciagnac poszatkowana cala baze. jak to okielznac? z gory dzieki za wszelkie sugestie.

obecnie mam zapis pliku:

  1. $f = @fopen( 'php://output', 'w' );
  2.  
  3. fwrite($f, $csvTitle . "\r\n");
  4.  
  5. foreach ($csvOutput as $line)
  6. {
  7. fwrite($f, $line . "\r\n");
  8. }
  9. fclose($f);


Ten post edytował deejay3 21.08.2014, 10:37:32
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




2tys rekordow to żadna spora baza.... to zaledwie mały pierdziuszek, ktory niesmialo probuje sie wydostac na zewnątrz.

Jak to zrobic? Normalnie, pobierasz se te rekordy z bazy i co 100 zmieniasz nazwe pliku na kolejną.
Go to the top of the page
+Quote Post
deejay3
post
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 24.03.2005

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


Cytat(nospor @ 21.08.2014, 10:36:54 ) *
2tys rekordow to żadna spora baza.... to zaledwie mały pierdziuszek, ktory niesmialo probuje sie wydostac na zewnątrz.

Jak to zrobic? Normalnie, pobierasz se te rekordy z bazy i co 100 zmieniasz nazwe pliku na kolejną.


jak jeden rekord odczytuje 80 tabeli to jest to spore.... pojedynczy plik po zapisie ma 1,5MB... jak na tekstowy to nie malo...

normalnie rekordy mam pobrane, tak jak pisalem wyzej, a ze zmieniam sobie co 100... to wlasnie to o co mi chodzi i dlatego pisze na tym forum, bo nie wiem jak to zrobic i prosze o pomoc.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




if ($i % 100 == 0) echo 'teraz zmien plik na kolejny';

gdzie $i zwiekszasz od 0 co jeden w swojej petli.
Go to the top of the page
+Quote Post
deejay3
post
Post #5





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 24.03.2005

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


a mozna cos blizej? bo nie do konca rozumeim ten zapis ;/ na codzien siedze bardziej w smarty i jQ, z obsluga plikow mam bardzo malo wspolnego, tak mi teraz wszyszlo i za bardzo nie moge tego okielznac. jak to mialo by sie do zapisu z powzszego mojego kodu? no i podstawa co zrobic z 'teraz zmien plik na kolejny' - jak to ugrysc zeby $f dopisywal kolejne liczby? oraz co dalej, bo wg powyzszego liczy od 0 do 100 a jak dalej z 100-200, 200-300..... ?

Ten post edytował deejay3 21.08.2014, 10:53:03
Go to the top of the page
+Quote Post
Turson
post
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


http://phpkurs.pl/operatory/ - modulo
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
bo wg powyzszego liczy od 0 do 100 a jak dalej z 100-200, 200-300..... ?
Czemu uwazasz ze liczy od 0 do 100? Nie wiesz co robi dany kod, ale sobie coś radośnie zakładasz.... Programowanie nie polega na zakładaniu, tylko na wiedzeniu. Skoro nie wiesz to nie zakładaj :/
Podalem ci kod, ktory co 100 rekordow będzie cie o tym informowal. Ty jedynie masz do tego dopisac zmiane pliku - nic wiecej.
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: 4.10.2025 - 01:41