Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Wydruk do pliku PDF
Forum PHP.pl > Forum > Przedszkole
krzesik
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?
b4rt3kk
No jak to jak? Wystarczy chociażby zwykły warunek IF?
krzesik
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.  
blahy
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>';
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.