Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz do wstawiania danych do bazy + odczyt z bazy + wydruk, odczyt z bazy danych w celu wydrukowania strony z tymi danymi
bogi7
post 20.09.2010, 11:18:51
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.09.2010

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


Witam mam następujący problem otóż stworzyłem bazę danych mysql z danymi pracowników Nazwisko i Imię|stanowisko| i ubrania łącznie 13 tabel.
Mam formularz do wprowadzania nowych pracowników który wygląda tak:
  1. <form action="index1.php" method="post">
  2.  
  3. Nazwisko i Imię:&nbsp;&nbsp;&nbsp;
  4. <input type="text" name="nazwa" />&nbsp;&nbsp;&nbsp;
  5.  
  6. stanowisko:&nbsp;&nbsp;&nbsp;
  7. <input type="text" name="stanowisko" />&nbsp;&nbsp;&nbsp;
  8.  
  9. koszula kalesony:&nbsp;&nbsp;&nbsp;
  10. <input type="text" name="koszula" />&nbsp;&nbsp;&nbsp;
  11.  
  12. ubranie drelichowe:&nbsp;&nbsp;&nbsp;
  13. <select name="drelich" size="1">
  14. </select>&nbsp;&nbsp;&nbsp;<br /><br /><br /><br />
  15.  
  16. Trzewiki przemysłowe:&nbsp;&nbsp;&nbsp;
  17. <select name="trzewiki" size="1">
  18.  
  19. </select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  20.  
  21. Buty gumofilce:&nbsp;&nbsp;
  22. <select name="bgumofilce" size="1">
  23.  
  24. </select>&nbsp;&nbsp;&nbsp;
  25. Buty gumowe:&nbsp;&nbsp;
  26. <select name="bgumowe" size="1">
  27.  
  28. </select>&nbsp;&nbsp;&nbsp; <br /> <br /><br /> <br />
  29.  
  30. Ubranie kwasoodporne zimowe:&nbsp;&nbsp;
  31. <select name="kodpornezimowe" size="1">
  32.  
  33. </select>&nbsp;&nbsp;&nbsp;
  34. Ubranie kwasoodporne letnie:&nbsp;&nbsp;
  35. <select name="kodporneletnie" size="1">
  36.  
  37. </select>&nbsp;&nbsp;&nbsp;
  38. Buty gumowe kwasoodporne:&nbsp;&nbsp;
  39. <select name="bgumowekodporne" size="1">
  40.  
  41. </select>&nbsp;&nbsp;&nbsp; <br /><br /><br /><br /><br />
  42.  
  43. Kurtka ocieplana komplet:&nbsp;&nbsp;
  44. <select name="ocieplana" size="1">
  45. <option>2010-09-01</option>
  46. <option>2010-09-02</option>
  47. <option>2010-09-03</option>
  48. <option>2010-09-04</option>
  49. <option>2010-09-05</option>
  50. <option>2010-09-06</option>
  51. <option>2010-09-07</option>
  52. <option>2010-09-08</option>
  53. <option>2010-09-09</option>
  54. <option>2010-09-10</option>
  55. <option>2010-09-11</option>
  56. <option>2010-09-12</option>
  57. <option>2010-09-13</option>
  58. <option>2010-09-14</option>
  59. <option>2010-09-15</option>
  60. <option>2010-09-16</option>
  61. <option>2010-09-17</option>
  62. <option>2010-09-18</option>
  63. <option>2010-09-19</option>
  64. <option>2010-09-20</option>
  65. <option>2010-09-21</option>
  66. <option>2010-09-22</option>
  67. <option>2010-09-23</option>
  68. <option>2010-09-24</option>
  69. <option>2010-09-25</option>
  70. <option>2010-09-26</option>
  71. <option>2010-09-27</option>
  72. <option>2010-09-28</option>
  73. <option>2010-09-29</option>
  74. <option>2010-09-30</option>
  75. </select>&nbsp;&nbsp;&nbsp;<br /><br /><br /><br /><br />
  76. <input type="submit" value="dodaj" />
  77. </form>
  78. </h4>
  79. <?php
  80. $nazwa = $_POST['nazwa'];
  81. $stanowisko = $_POST['stanowisko'];
  82. $koszula = $_POST['koszula'];
  83. $drelich = $_POST['drelich'];
  84. $trzewiki = $_POST['trzewiki'];
  85. $kurtkapdeszcz = $_POST['kurtkapdeszcz'];
  86. $bgumofilce = $_POST['bgumofilce'];
  87. $bgumowe = $_POST['bgumowe'];
  88. $kodpornezimowe = $_POST['kodpornezimowe'];
  89. $kodporneletnie = $_POST['kodporneletnie'];
  90. $bgumowekodporne = $_POST['bgumowekodporne'];
  91. $ocieplana = $_POST['ocieplana'];
  92.  
  93. if($nazwa and $stanowisko and $koszula and $drelich and $trzewiki and $kurtkapdeszcz and $bgumofilce and $bgumowe and $kodpornezimowe and $kodporneletnie and $bgumowekodporne and $ocieplana) {
  94.  
  95.  
  96. $connection = @mysql_connect('localhost', 'root', 'qqq123')
  97. or die('Brak połączenia z serwerem MySQL');
  98. $db = @mysql_select_db('rozdzielnik_weglopochodne', $connection)
  99. or die('Nie mogę połączyć się z bazą danych');
  100.  
  101.  
  102. $ins = @mysql_query("INSERT INTO pracownicy SET nazwa='$nazwa', stanowisko='$stanowisko', koszula='$koszula', drelich='$drelich', trzewiki='$trzewiki', kurtkapdeszcz='$kurtkapdeszcz', bgumofilce='$bgumofilce', bgumowe='$bgumowe', kodpornezimowe='$kodpornezimowe', kodporneletnie='$kodporneletnie', bgumowekodporne='$bgumowekodporne', ocieplana='$ocieplana'");
  103.  
  104. if($ins) echo "Rekord został dodany poprawnie dodaj kolejny";
  105. else echo "Błąd nie udało się dodać nowego rekordu sprawdź datę RRR-MM-DD";
  106.  
  107. mysql_close($connection);
  108. }
  109.  
  110. ?>


ponadto mam formularz do odczytu z bazy danych pracowników:

  1. <?php
  2.  
  3.  
  4. $zapytanie = "SELECT * FROM pracownicy ORDER BY klientid LIMIT 0, 20";
  5. $pracownicy = mysql_query($zapytanie) or die ('Błąd: ' . mysql_error());
  6. ?>
  7. <hr style="height: 0px; border-top-color: #FFFF99;"/>
  8. <table border="2" cellpadding="2" cellspacing="1" >
  9. <tr><th>ID&nbsp;</th><th>Nazwisko i Imię</th><th>Stanowisko</th><th>Ubranie drelichowe</th><th>Koszula, kalesony</th><th>Trzewiki</th><th>Kurtka p. deszcz.</th><th>Buty gumofilce</th><th>Buty gumowe</th><th>Ubranie kwasosodporne zimowe</th><th>Ubranie kwasodporne letnie</th><th>Buty gumowe kwasoodporne</th><th>Kurtka ocieplana komplet</th></tr>
  10.  
  11. <?php
  12. while ($rekord = mysql_fetch_assoc($pracownicy)) {
  13. ?>
  14. <tr>
  15. <td><?php echo $rekord['klientid']; ?></td>
  16. <td><?php echo $rekord['nazwa'];?></a></td>
  17. <td><?php echo $rekord['stanowisko'];?></a></td>
  18. <td><?php echo $rekord['drelich'];?></a></td>
  19. <td><?php echo $rekord['koszula'];?></a></td>
  20. <td><?php echo $rekord['trzewiki'];?></a></td>
  21. <td><?php echo $rekord['kurtkapdeszcz'];?></a></td>
  22. <td><?php echo $rekord['bgumofilce'];?></a></td>
  23. <td><?php echo $rekord['bgumowe'];?></a></td>
  24. <td><?php echo $rekord['kodpornezimowe'];?></a></td>
  25. <td><?php echo $rekord['kodporneletnie'];?></a></td>
  26. <td><?php echo $rekord['bgumowekodporne'];?></a></td>
  27. <td><?php echo $rekord['ocieplana'];?></a></td>
  28. </tr>
  29. <?php
  30. }
  31.  
  32. ?>
  33. <table>

prosiłbym o pomoc w utworzeniu formularza w celu wydruku z bazy danych, danych które będą pobierały Nazwisko i Imię, oraz nazwę odzieży i datę np.
Jan Kowalski|ubranie drelichowe|2010-10-11
, i jeszcze jedno jak zrobić w formularzu kalendarz z wyborem daty i wstawieniem go do pola, jak widać na przykładzie moja opcja nie jest doskonała wszystkie dni mam zapisane w polu <select>
z góry dziękuję
Go to the top of the page
+Quote Post
fander
post 20.09.2010, 13:41:06
Post #2





Grupa: Zarejestrowani
Postów: 231
Pomógł: 22
Dołączył: 6.10.2008

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


odnośnie drukowania:
Masz bazę danych więc możesz generować pliki pdf a następnie je drukować. PDF-y możesz generować za pomocą FPDF. Strona projektu http://www.fpdf.org/

Możesz również stworzyć plik np lista.php gdzie będziesz miał listę pracowników. Do tego pliku tworzysz pliczek css z atrybutem: media="print". Na końcu tego pliczku dodajesz kod
Kod
<input type="button"
  onClick="window.print()"
  value="drukuj"/>
</body>

co stworzy przycisk do wydruku.

Odnośnie kalendarza:
Polecam jQuery i wtyczkę do tego frimeworka jQuery UI Datepicker http://marcgrabanski.com/articles/jquery-ui-datepicker
Go to the top of the page
+Quote Post
bogi7
post 21.09.2010, 04:14:37
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.09.2010

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


a jak zrobić żeby wybierał daty i odpowiednią odzież w danym miesiącu? np: wprowadzam dane z różnymi datami 2010-09-10, 2010-10-01 2011-03-10 i chcę aby w danym miesiącu wybrał tylko te rekordy które odpowiadają miesiącowi który jest
Go to the top of the page
+Quote Post
fander
post 21.09.2010, 08:09:43
Post #4





Grupa: Zarejestrowani
Postów: 231
Pomógł: 22
Dołączył: 6.10.2008

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


A pokaż kolego jaką masz strukturę bazy danych, jakie masz w niej tabelki. Bo z tego co widzę to masz 1 tabelkę do której pakujesz wszystkie dane.
Jeśli chcesz wyświetlić ludków z określonym urwaniem z określonego przedziału czasu to musisz wygenerować zapytanie do bazy, ale przy twojej strukturze bazy danych będzie to trochę uciążliwe.
Go to the top of the page
+Quote Post
bogi7
post 21.09.2010, 09:42:31
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.09.2010

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


no właśnie też mi się tak wydaje że musiał bym zrobić 2 tabelki 1-n
Kod
CREATE TABLE IF NOT EXISTS `pracownicy` (
  `id` int(11) NOT NULL auto_increment,
  `nazwa` varchar(150) NOT NULL,
  `stanowisko` varchar(50) NOT NULL,
  `koszula` date NOT NULL,
  `drelich` date NOT NULL,
  `trzewiki` date NOT NULL,
  `kurtkapdeszcz` date NOT NULL,
  `bgumofilce` date NOT NULL,
  `bgumowe` date NOT NULL,
  `kodpornezimowe` date NOT NULL,
  `kodporneletnie` date NOT NULL,
  `bgumowekodporne` date NOT NULL,
  `ocieplana` date NOT NULL,
  PRIMARY KEY  (`klientid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10;

a czy można by było zrobić to tak

TABELA pracownicy
'idpracownika'
'nazwapracownika'
'stanowisko'

druga TABELA odzież
`id`
`koszula`
`drelich`
`trzewiki`
`kurtkapdeszcz`
`bgumofilce`
`bgumowe`
`kodpornezimowe`
`kodporneletnie`
`bgumowekodporne`
`ocieplana`
i nie jestem pewien czy 3 TABELA też by musiała być i jak napisać skrypt do dodawania, odczytywania i drukowania rozdzielnika

Ten post edytował bogi7 21.09.2010, 10:01:06
Go to the top of the page
+Quote Post
CuteOne
post 21.09.2010, 15:32:58
Post #6





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Idziesz w dobrym kierunku jeden 'obiekt' = jedna tabela. Jeżeli chcesz pobierać wg dat:

druga TABELA odzież
`idpracownika`
`koszula`
`drelich`
`trzewiki`
`kurtkapdeszcz`
`bgumofilce`
`bgumowe`
`kodpornezimowe`
`kodporneletnie`
`bgumowekodporne`
`ocieplana`
`data`

  1.  
  2. $data_from = //pobiera date z kalendarza [od]
  3. $date_to = //pobiera date z kalendarza [do]
  4. $pracownik_id = //pobiera id pracownika z formularza
  5.  
  6. $select = mysql_query("SELECT odziez.*, pracownicy.* FROM odziez, pracownicy WHERE pracownicy.idpracownika = $pracownik_id and odziez.idpracownika = $pracownik_id and (odziez.data >= '{$data_from}' and odziez.data <= '{$data_to}')");
  7.  



ps. Czy to zapytanie Ci działa??
  1. INSERT INTO pracownicy SET nazwa='$nazwa', stanowisko='$stanowisko', koszula='$koszula', drelich='$drelich', trzewiki='$trzewiki', kurtkapdeszcz='$kurtkapdeszcz', bgumofilce='$bgumofilce', bgumowe='$bgumowe', kodpornezimowe='$kodpornezimowe', kodporneletnie='$kodporneletnie', bgumowekodporne='$bgumowekodporne', ocieplana='$ocieplana'


Ten post edytował CuteOne 21.09.2010, 15:33:28
Go to the top of the page
+Quote Post
bogi7
post 22.09.2010, 05:39:01
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.09.2010

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


to polecenie działało jak miałem jedną bazę danych smile.gif teraz mam 2 i muszę zmienić sposób dodawania do bazy pracowników


Idziesz w dobrym kierunku jeden 'obiekt' = jedna tabela. Jeżeli chcesz pobierać wg dat:

druga TABELA odzież
`idpracownika`
`koszula`
`drelich`
`trzewiki`
`kurtkapdeszcz`
`bgumofilce`
`bgumowe`
`kodpornezimowe`
`kodporneletnie`
`bgumowekodporne`
`ocieplana`
`data`
Cytat(CuteOne @ 21.09.2010, 16:32:58 ) *
  1.  
  2. $data_from = //pobiera date z kalendarza [od]
  3. $date_to = //pobiera date z kalendarza [do]
  4. $pracownik_id = //pobiera id pracownika z formularza
  5.  
  6. $select = mysql_query("SELECT odziez.*, pracownicy.* FROM odziez, pracownicy WHERE pracownicy.idpracownika = $pracownik_id and odziez.idpracownika = $pracownik_id and (odziez.data >= '{$data_from}' and odziez.data <= '{$data_to}')");
  7.  


ps. Czy to zapytanie Ci działa??
  1. INSERT INTO pracownicy SET nazwa='$nazwa', stanowisko='$stanowisko', koszula='$koszula', drelich='$drelich', trzewiki='$trzewiki', kurtkapdeszcz='$kurtkapdeszcz', bgumofilce='$bgumofilce', bgumowe='$bgumowe', kodpornezimowe='$kodpornezimowe', kodporneletnie='$kodporneletnie', bgumowekodporne='$bgumowekodporne', ocieplana='$ocieplana'


a czy możesz mi powiedzieć jak ma wyglądać formularz do pokazania wyniku na stronie?
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: 18.07.2025 - 08:37