Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Generowanie pdf z php z danymi z bazy mssql
Inka
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 24.06.2009
Skąd: Gliwice

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


Witajcie
Jako, że to mój pierwszy post na tym forum chciałam się z Wami przywitać. Jestem baaaaardzo początkującą programistką.

Mój szef dał mi takie wspaniałe zadanie premiowe. Stworzyć generowanie pdf do systemu, który już ja sama stworzyłam. Jest to system rejestracji czasu pracy pracowników. Mój problem jest następujący. Mam listę pracy danego pracownika w formie do wyboru zestawienia bądź szychtownicy
tak wygląda zestawienie:
(IMG:http://img200.imageshack.us/img200/6830/zestawienie.th.jpg)
a tak szychtownica
(IMG:http://img197.imageshack.us/img197/6562/szychtownica.th.jpg)

Wszystkie dane brane są z bazy mssql.
Mam pod listą, przed listą, obok listy, gdziekolwiek wsadzić guzik/link do generowania pdf. Kod pliku z obrazka:
  1. <form name="pracownik_szczegoly" method="post">
  2. <select name="lista">
  3. <option value="2" <?php if (!isset($_POST['lista']) || $_POST['lista'] == 2) echo "selected";?>>Szychtownica</option>
  4. <option value="1" <?php if (!isset($_POST['lista']) || $_POST['lista'] == 1) echo "selected";?>>Zestawienie</option>
  5. <input type="submit" name="submit" value="Ładuj"><br /><?php
  6. $zapytanie = "select imie,nazwisko from osoby where praid=" .$_REQUEST['user']."and dbo.ymd(".$_SESSION['rok'].",".$_SESSION['miesiac'].",1) between dataod and datado";
  7. $wynik = mssql_query($zapytanie, $polaczenie);
  8. echo "<b><p>";
  9. PokazWynik1($wynik);
  10. echo "<br>Rok: ".$_SESSION['rok'].","."Miesiąc: ".$_SESSION['miesiac'];
  11. echo "</p></b>";
  12.  
  13. if(isset($_POST['lista']) && $_POST['lista']==2)
  14. {
  15. $zapytanie2 = "exec szychtownica '".$_REQUEST['user']."','".$_SESSION['rok']."','".$_SESSION['miesiac']."'";
  16. $wynik2 = mssql_query($zapytanie2, $polaczenie);
  17. PokazWynikSzczegoly($wynik2);
  18. }
  19.  
  20. elseif (isset($_POST['lista']) && $_POST['lista']==1)
  21. {
  22. $zapytanie1 = "exec pracownikmiesiac '".$_REQUEST['user']."','".$_SESSION['rok']."','".$_SESSION['miesiac']."'";
  23. $wynik1 = mssql_query($zapytanie1, $polaczenie);
  24. PokazWynikSzczegoly($wynik1);
  25. }
  26. else
  27. {
  28. $zapytanie1 = "exec pracownikmiesiac '".$_REQUEST['user']."','".$_SESSION['rok']."','".$_SESSION['miesiac']."'";
  29. $wynik1 = mssql_query($zapytanie1, $polaczenie);
  30. PokazWynikSzczegoly($wynik1);
  31. }?>
  32. </form>
  33. <form name="pdf" method="post" action="generuj.php">
  34. <input type="submit" name="pdf" value="pdf">
  35. <p><a href="index.php?form=form3">Powrót</a></p>
  36. </form>


kod pliku generuj.php
  1. <?php
  2. include("rysuj_tabele.php");
  3. $tekst=PokazWynikSzczegoly($wynik2);
  4. require_once('tcpdf/config/lang/eng.php');
  5. require_once('tcpdf/tcpdf.php');
  6. $pdf=new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, '', false);
  7. $pdf->SetCreator(PDF_CREATOR);
  8. $pdf->SetTitle('pracownik szczegoly');
  9. $pdf->SetSubject('rcp');
  10. $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
  11. $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
  12. $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
  13. $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
  14. $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
  15. $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
  16. $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
  17. $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
  18. $pdf->AddFont('arial_ce','','arial_ce.php');
  19. $pdf->SetFont('arial_ce','',12);
  20. $pdf->Cell(0, 5, '$tekst', 0, 1, 'C');
  21. $pdf->Output('pracownik_szczegoly.pdf','I');
  22. ?>


po kliknięciu w guzik PDF przeglądarka wywala mi takie komunikaty:

To jest z użyciem biblioteki tcpdf

Cytat
Notice: Undefined index: user in C:\Documents and Settings\karina.mendera.WIROMET\Moje dokumenty\My Webs\!RCP\generuj.php on line 4

Notice: Undefined index: rok in C:\Documents and Settings\karina.mendera.WIROMET\Moje dokumenty\My Webs\!RCP\generuj.php on line 4

Notice: Undefined index: miesiac in C:\Documents and Settings\karina.mendera.WIROMET\Moje dokumenty\My Webs\!RCP\generuj.php on line 4

Warning: mssql_query() [function.mssql-query]: message: Incorrect syntax near the keyword 'and'. (severity 15) in C:\Documents and Settings\karina.mendera.WIROMET\Moje dokumenty\My Webs\!RCP\generuj.php on line 5

Warning: mssql_query() [function.mssql-query]: Query failed in C:\Documents and Settings\karina.mendera.WIROMET\Moje dokumenty\My Webs\!RCP\generuj.php on line 5


Fatal error: Call to undefined function PokazWynik1() in C:\Documents and Settings\karina.mendera.WIROMET\Moje dokumenty\My Webs\!RCP\generuj.php on line 7


wychodzi na to, że dane user, rok miesiac nie są przekazywane do pliku generuj.php.

A to z użyciem biblioteki fpdf:

Cytat
Notice: Undefined variable: wynik2 in C:\Documents and Settings\karina.mendera.WIROMET\Moje dokumenty\My Webs\!RCP\generuj.php on line 3


Wynika z tego, że zmienna $wynik2 nie jest przekazywana do pliku generuj.php

Powiedzcie mi jak to zrobić by je zapamiętać w locie i w locie wygenerować ten plik pdf (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) siedzę z kolegą nad tym już 2 tygodnie i nic wymyślić nie umiemy (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Pozdrawiam
Inka

Ten post edytował Inka 24.06.2009, 10:13:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Inka
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 24.06.2009
Skąd: Gliwice

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


Darti nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

w pierwszym Twoim kodzie: jak to wrzucę to mojego pliku to po przeładowaniu strony wyskakuje: undefined index lista in pracownik_szczegoly.php
Zrobię tak, że wrzucę wam kody plików tych głównych skąd się bierze te moje zestawienie. Może rzeczywiście się nie zgubicie. Ogólnie to ja bym chciała to zrobić w jakimś cms ale nie wiem czy to zadziała i czy będę miała na tyle odwagi i ochoty by ten system przerobić.

Index.php
http://chomikuj.pl/perelci4/Dokumenty/index.php

rysuj_tabele.php
http://chomikuj.pl/perelci4/Dokumenty/rysuj_tabele.php

form3.php (tzw zakładka miesiąc, zestawienie miesięczne pracowników danego działu, ja jako administrator widzę wszystkich pracowników) - formularz do wybierania miesiąca i roku.
http://chomikuj.pl/perelci4/Dokumenty/form3.php

wyniki3.php wyniki wybrania opcji w powyższym formularzu
http://chomikuj.pl/perelci4/Dokumenty/wyniki3.php

pracownik_szczegoly.php - wyświetla się po kliknięciu na liście z form3/wyniki3 na nazwisko danego pracownika by wyświetliło się zestawienie miesięczne przepracowanych godzin
http://chomikuj.pl/perelci4/Dokumenty/prac...k_szczegoly.php

plik generuj.php do generowania pdf
http://chomikuj.pl/perelci4/Dokumenty/generuj.php są tu dwa kody do generowania, jeden jest zawsze zakomentowany, pierwszy to fpdf, drugi to tcpdf

to wszystko co odpowiada za tę jedną zakładkę. Jest jeszcze plik do łączenia się z bazą
  1. <?php
  2. $polaczenie = mssql_connect ("ip serwera z bazą","user","haslo");
  3. $baza = mssql_select_db ("nazwa bazy",$polaczenie);
  4. ?>


mam nadzieję, że nikt się nie pogubi (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) w pliku rysuj tabele są zawarte wszystkie funkcje odpowiadające za rysowanie tabel w calusieńkim systemie. I teraz tak. Wchodzę na tę zakładkę miesiąc, klikam w nazwisko pracownika wyświetla mi się zestawienie miesięcznie z linkiem do generowania pdf. Jak najadę na ten link to wyświetla mi
Cytat
Notice: undefined index lista in pracownik_szczegoly.php.
Jeśli mimo wszystko kliknę na ten link to wyrzuca mi takie oto błędy:
Cytat
Notice: Undefined variable: _SESSION in C:\Documents and Settings\karina.mendera.WIROMET\Moje dokumenty\My Webs\!RCP\generuj.php on line 8

Notice: Undefined variable: _SESSION in C:\Documents and Settings\karina.mendera.WIROMET\Moje dokumenty\My Webs\!RCP\generuj.php on line 8

Notice: Undefined variable: polaczenie in C:\Documents and Settings\karina.mendera.WIROMET\Moje dokumenty\My Webs\!RCP\generuj.php on line 11

Warning: mssql_query(): supplied argument is not a valid MS SQL-Link resource in C:\Documents and Settings\karina.mendera.WIROMET\Moje dokumenty\My Webs\!RCP\generuj.php on line 11

Notice: Undefined variable: wynik1 in C:\Documents and Settings\karina.mendera.WIROMET\Moje dokumenty\My Webs\!RCP\generuj.php on line 15

Podałeś złe dane !
Podałeś złe dane !
FPDF error: Some data has already been output, can't send PDF file




P.S. zmieniłam troszkę link w pliku pracownik_szczegoly.php
  1. <a href="generuj.php?user=<?php echo $_REQUEST['user']; ?>&rok=<?php echo $_SESSION['rok']; ?>&miesiac=<?php echo $_SESSION['miesiac'];?>&lista=<?php if (!isset($_POST['lista']) || $_POST['lista'] == 2) echo "2"; else echo "1"; ?>">generuj pdf</a>


i w pliku generuj zrobiłam:
  1. <?php
  2. include("polaczenie.php");
  3. switch ($_GET['lista']){
  4. case '2':
  5. $zapytanie = "exec szychtownica '".$_REQUEST['user']."','".$_REQUEST['rok']."','".$_REQUEST['miesiac']."'";
  6. break;
  7. case '1':
  8. default:
  9. $zapytanie = "exec pracownikmiesiac '".$_REQUEST['user']."','".$_REQUEST['rok']."','".$_REQUEST['miesiac']."'";
  10. break;
  11. }
  12. $wynik2 = mssql_query($zapytanie, $polaczenie);
  13. ?>
  14. <?php
  15. define('FPDF_FONTPATH','fpdf16/font/');
  16. require('fpdf16/fpdf.php');
  17. $pdf=new FPDF();
  18. $pdf->Open();
  19. $pdf->AddPage();
  20. $pdf->AddFont('arial_ce','','arial_ce.php');
  21. $pdf->SetFont('arial_ce','',12);
  22. $pdf->SetTitle('Pracownik Szczegóły');
  23. $pdf->cell(0,4,$wynik2,1);
  24. $pdf->Output();
  25. ?>


i teraz jak kliknę w generuj pdf to generuje mi się pdf ale nie z danymi tylko z jednym wierszem tabeli i napisem Resource id #4. Dlaczego ? (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Ten post edytował Inka 25.06.2009, 07:40:46
Go to the top of the page
+Quote Post

Posty w temacie
- Inka   [php]Generowanie pdf z php z danymi z bazy mssql   24.06.2009, 10:08:01
- - maly_swd   nie wiem czy dobrze Cie zrozumialem, ale: [PHP] po...   24.06.2009, 10:54:36
- - Inka   input type user nie mogę dać bo to ejst wszystko p...   24.06.2009, 11:02:54
- - maly_swd   W pliku generuj nie startujesz sesji i nie ma uchw...   24.06.2009, 12:16:33
- - Inka   ale po co mam startować kolejną sesję dla jednego ...   24.06.2009, 12:27:36
- - maly_swd   Jesli startujesz sesje w pliku index.php i trzymas...   24.06.2009, 13:25:18
- - Inka   z bazy danych je pobiera. Ten mój system jest zbyt...   24.06.2009, 13:40:41
- - maly_swd   odp. masz w poprzednim poscie,   24.06.2009, 14:01:35
- - 230005   [PHP] pobierz, plaintext <?phpTen mój system je...   24.06.2009, 14:20:07
- - Darti   Formularz pdf zastąp linkiem (pisane z palca - do ...   24.06.2009, 14:45:15
- - Inka   Darti nie działa w pierwszym Twoim kodzie: ...   25.06.2009, 06:44:21
- - Darti   Dlatego, że przekazujesz wynik zapytania prosto z ...   25.06.2009, 10:48:33
- - Inka   tyle już zdążyłam przeczyta...   26.06.2009, 09:33:28
|- - Darti   Cytat(Inka @ 25.06.2009, 10:01:44 ) a...   26.06.2009, 09:34:05
- - Inka   szef woli tabelkę więc robię tabelkę. Tylko jak wr...   26.06.2009, 09:59:52
- - Darti   może takie coś w tej klasie (tutaj wiersz 45 do 51...   26.06.2009, 10:19:47
- - Inka   zrobiłam to i dostałam w pierwszym przypadku (zest...   26.06.2009, 10:25:54
- - Darti   bo nazwy kolumn w tabelce są inne niz w bazie, no ...   26.06.2009, 10:48:37
- - Inka   Warning: Wrong parameter count for mssql_fetch_ass...   26.06.2009, 10:54:09
- - nospor   CytatWarning: Wrong parameter count for mssql_fetc...   26.06.2009, 10:58:23
- - Darti   a bo z palca i sie pomyliłem :/ juz poprawilem pos...   26.06.2009, 11:00:04


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: 15.10.2025 - 23:48