Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz do wstawiania danych do bazy + odczyt z bazy + wydruk
Forum PHP.pl > Forum > PHP
bogi7
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ę
fander
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
bogi7
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
fander
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.
bogi7
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
CuteOne
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'
bogi7
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?
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.