Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL][PHP]Dzielenie rekordów sql na paczki po 100
niko841
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.04.2010

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


Witajcie jestem nowy i na forum i w programowaniu. Bawię się ze skryptami w ramach ćwiczeń (IMG:style_emoticons/default/smile.gif) (samouk) (IMG:style_emoticons/default/smile.gif) (IMG:style_emoticons/default/smile.gif)

Mam problem z takim skryptem.
Chcę wyświetlić wszystkie rekordy sql na stronie - to umiem (IMG:style_emoticons/default/smile.gif)
Później te wszystkie rekordy zapisać do plików txt po 100 wpisów na plik.

czyli jeśli w bazie jest 1000 rekordów to skrypt utworzy mi 10 plików po 100 wpisów.
Chodzi mi tylko o czytanie jednej kolumny z tabeli i jej zapis.
Szukałem też pomocy na forum forum.optymalizacja.com (informuję was tak co by być uczciwym dla was)
Chłopaki proponują tam "limit" tylko nie bardzo rozumiem jak to ma się sprawdzić w przypadku wyświetlania wszystkich rekordów i dzielenia ich na paczki.

Pomocyyyyyy (IMG:style_emoticons/default/smile.gif)

Dziękuję za pomoc.

Ten post edytował niko841 29.10.2011, 07:53:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
croc
post
Post #2





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Ja bym powiedział, że oba rozwiązania są do luftu.

Pierwsze jest niepotrzebnie ciężkie. Nie ma co upychać wszystkiego do tablic.

Drugie zakłada, że wiesz ile ma być tych porcji i - co gorsza - wielokrotnie wykonuje zapytania.

Moim zdaniem optymalnie będzie po prostu wykonywać zapytanie w pętli for i sprawdzać resztę z dzielenia:

  1. $rowsPerFile = 100;
  2. $fileID = 0;
  3. for($i = 0; $row = mysql_fetch_assoc($query); ++$i) {
  4. if($i % $rowsPerFile === 0) {
  5. ++$fileID;
  6. $file = fopen($fileID.'.txt', 'w');
  7. }
  8. fwrite($file, 'to co chcesz zapisać z $row');
  9. }


Ten post edytował croc 31.10.2011, 00:45:56
Go to the top of the page
+Quote Post

Posty w temacie


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: 3.10.2025 - 09:56