Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP]Wydruk do pliku PDF
krzesik
post 19.02.2015, 13:56:57
Post #1





Grupa: Zarejestrowani
Postów: 513
Pomógł: 1
Dołączył: 25.08.2012

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


Witam, mam skrypt którym tworzę wydruki do pliku PDF. Działa ładnie, no ale jest jedno ale... Wieksze tabelki np 500-800 rekordów wymagają większej pamięci, mój hostingodawca niestety ma ograniczenia i nie jestem w stanie jednym klinięciem stworzyć kompletnego pdfa. Wpadłem na pomysł aby user drukował sobie po ileś tam stron i tu natknąłem sie na swój brak wiedzy w temacie.

sprawdzam sobie (mam zastosowana paginację stron, na każdej mam 27 rekordów) ile stron ma cały wydruk:
  1. .........
  2. $sql = "SELECT COUNT(*) FROM $tabelka";
  3. $result = mysql_query($sql) OR die('Queryproblem: ' . mysql_error());
  4. $ilePozycji = mysql_result($result, 0);
  5. $ileStron=ceil($ilePozycji/27);
  6. ..........

mając tę wiedzę pomyślałem, że pokaże userowi od której strony do której chce drukować:
  1. ..........
  2. echo '<select name="ilosc_do_wydruku_start" >';
  3. for ($i = 1; $i <= $ileStron; $i++)
  4. {
  5. echo '<option value="'.$i.'">'.$i.'</option>';
  6. }
  7. echo '</select>';
  8.  
  9. echo '<select name="ilosc_do_wydruku_stop" >';
  10. for ($i = 1; $i <= $ileStron; $i++)
  11. {
  12. echo '<option value="'.$i.'">'.$i.'</option>';
  13. }
  14. echo '</select>';
  15. ...........


jak zrobić aby numer strony kończącej wydruk nie mógł być mniejszy niż numer strony wydruk rozpoczynający, a zarazem nie większy niż 10 kolejnych stron?
Go to the top of the page
+Quote Post
b4rt3kk
post 19.02.2015, 14:14:29
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


No jak to jak? Wystarczy chociażby zwykły warunek IF?


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
krzesik
post 19.02.2015, 16:57:45
Post #3





Grupa: Zarejestrowani
Postów: 513
Pomógł: 1
Dołączył: 25.08.2012

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


ok zrobiłem tak, ale jeszcze nie do końca jak chciałem...
  1. echo '<form name="aaaa" method="post">';
  2. echo '<select name="ilosc_do_wydruku_start" onchange="this.form.submit()">';
  3. for ($i = 1; $i <= $ileStron; $i++)
  4. {
  5. if(!empty($ilosc_do_wydruku_start))
  6. {
  7. echo '<option value="'.$ii.'">'.$ii.'</option>';
  8. } else
  9. echo '<option value="'.$i.'">'.$i.'</option>';
  10. }
  11. echo '</select>';
  12.  
  13. $ii = $_POST['ilosc_do_wydruku_start'];
  14.  
  15. echo '<select name="ilosc_do_wydruku_stop" >';
  16. for ($k = $ii; $k <= $ileStron; $k++)
  17. {
  18. echo '<option value="'.$k.'">'.$k.'</option>';
  19. }
  20. echo '</select>';
  21. echo '</form>';
  22.  

w drugim selekcie zmienia mi wartość powyżej pierwszego jest ok, jednak po submicie w pierwszym znów jest 1..........

Morduję się z pewną opcją od dłuższego czasu i co chwila kulą w płot....
Jak zrobić aby wybierając z jedengo selecta wartość, w drugim podstawiała się automatycznie wartość z pierwszego z kolejnymi max większymi o 10 lub do końca pętli FOR?

mam na tę chwilę coś takiego:
  1. ...........
  2. echo '<form name="aaaa" method="post">';
  3. echo '<select name="ilosc_do_wydruku_start" onchange="this.form.submit()">';
  4.  
  5. if(!empty($_POST['ilosc_do_wydruku_start']))
  6. {
  7. echo '<option value="'.$_POST['ilosc_do_wydruku_start'].'">'.$_POST['ilosc_do_wydruku_start'].'</option>';
  8. echo '<option value=""></option>';
  9. for ($i = 1; $i <= $ileStron; $i++)
  10. {
  11. if(!empty($_POST['ilosc_do_wydruku_start']))
  12.  
  13. echo '<option value="'.$i.'">'.$i.'</option>';
  14.  
  15. }
  16. echo '</select>';
  17. }
  18.  
  19. else
  20. for ($i = 1; $i <= $ileStron; $i++)
  21. {
  22. if(!empty($_POST['ilosc_do_wydruku_start']))
  23. { echo '<option value="'.$i.'">'.$i.'</option>'; }
  24. else {
  25. echo '<option value="'.$i.'">'.$i.'</option>';
  26. }}
  27. echo '</select>';
  28.  
  29. $max = 10;
  30.  
  31. echo '<select name="ilosc_do_wydruku_stop" >';
  32. [b]for ($k = $ii; $k <= $ii+$max>$ileStron; $k++)[/b] //tak nie można ale mniejwięcej o to mi chodzi
  33. {
  34. echo '<option value="'.$k.'">'.$k.'</option>';
  35. }
  36. echo '</select>';
  37. echo '</form>';
  38. ........
  39.  
  40.  


Ten post edytował krzesik 19.02.2015, 15:02:54
Go to the top of the page
+Quote Post
blahy
post 19.02.2015, 19:44:05
Post #4





Grupa: Zarejestrowani
Postów: 82
Pomógł: 22
Dołączył: 20.07.2010

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


nie latwiej tak?
  1. <?php
  2.  
  3. $od = $_POST['start'] ?: 1;
  4. $skok = 10;
  5.  
  6. $do = $od + $skok;
  7. $max = 27;
  8.  
  9. echo '<form name="aaaa" method="post">';
  10. echo 'od: <select name="start" onchange="this.form.submit()">';
  11.  
  12. for($i = $od; $i <= $max; $i++) {
  13. echo '<option value="'.$i.'">'.$i.'</option>';
  14. }
  15. echo '</select>';
  16.  
  17. echo 'do: <select name="stop">';
  18. for($i = $od; $i <= $do && $i <= $max; $i++) {
  19. echo '<option value="'.$i.'">'.$i.'</option>';
  20. }
  21. echo '</select>';
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 04:31