Jacek Kowalski
2019-12-16 07517ae563097e04e91ea3fae2c2ca1cf2309b86
commit | author | age
175a52 1 <?php
JK 2 $title = 'Inwentaryzacja - rozpoczęcie';
3 include('design/top.php');
4
6cba3f 5 require('../includes/config.php');
JK 6 require('../includes/PDOO.php');
175a52 7
6cba3f 8 try {
JK 9     $fields = array('tytul', 'autor', 'miejsce', 'rok', 'wydawnictwo');
175a52 10
6cba3f 11     $PDO = PDOO::Singleton();
175a52 12
6cba3f 13     $st = $PDO->query('SELECT * FROM `ksiazki` WHERE `wycofana`=\'0\' ORDER BY `regal` ASC, `polka` ASC, `rzad` ASC');
175a52 14
6cba3f 15     $fp = fopen('list.xml', 'w');
JK 16     if($fp === FALSE) {
17         throw new Exception('Otwarcie pliku inwentaryzacja/list.xml nie powiodło się.');
18     }
19
20     fwrite($fp, '<?xml version="1.0" encoding="utf-8" ?>
21     <!DOCTYPE inwentaryzacja [
22     <!ENTITY % quot "&#34;">
23     <!ENTITY % amp "&#38;">
24     <!ENTITY % lt "&#60;">
25     <!ENTITY % gt "&#62;">
26     <!ELEMENT inwentaryzacja (lokalizacja)*>
27     <!ELEMENT lokalizacja (ksiazka)*>
28     <!ATTLIST lokalizacja
29         id    ID    #IMPLIED
30         regal    CDATA    #IMPLIED
31         polka    CDATA    #IMPLIED
32         rzad    CDATA    #IMPLIED>
33     <!ELEMENT ksiazka (tytul | autor | miejsce | rok | wydawnictwo)*>
34     <!ATTLIST ksiazka
35         id    ID    #IMPLIED
36         status    CDATA    #IMPLIED>
37     <!ELEMENT tytul (#PCDATA)>
38     <!ELEMENT autor (#PCDATA)>
39     <!ELEMENT miejsce (#PCDATA)>
40     <!ELEMENT rok (#PCDATA)>
41     <!ELEMENT wydawnictwo (#PCDATA)>
42     ]>
43     <inwentaryzacja>
44     ');
45
46     $lastplace = NULL;
47
48     while($entry = $st->fetch()) {
49         if($lastplace != $entry['regal'].'/'.$entry['polka'].'/'.$entry['rzad']) {
50             if($lastplace !== NULL) {
51                 fwrite($fp, '</lokalizacja>'."\n");
52             }
53             fwrite($fp, '<lokalizacja id="m_'.$entry['regal'].'_'.$entry['polka'].'_'.$entry['rzad'].'" regal="'.$entry['regal'].'" polka="'.$entry['polka'].'" rzad="'.$entry['rzad'].'">'."\n");
54             $lastplace = $entry['regal'].'/'.$entry['polka'].'/'.$entry['rzad'];
175a52 55         }
6cba3f 56         
JK 57         fwrite($fp, '<ksiazka id="k'.$entry['id'].'">'."\n");
58         foreach($fields as $key) {
59             fwrite($fp, '<'.$key.'>'.htmlspecialchars($entry[$key]).'</'.$key.'>'."\n");
60         }
61         fwrite($fp, '</ksiazka>'."\n");
175a52 62     }
6cba3f 63
JK 64     if($lastplace !== NULL) {
65         fwrite($fp, '</lokalizacja>'."\n");
175a52 66     }
JK 67
6cba3f 68     fwrite($fp, '</inwentaryzacja>'."\n");
175a52 69
JK 70 ?>
71
72 <h3>Krok 1 z 3: Przygotowanie listy książek</h3>
73
74 <p>Jeżeli nie widzisz błędów powyżej to krok pierwszy został pomyślnie zakończony.</p>
75
4670c7 76 <form action="locate.htm">
175a52 77 <p>Możesz: <input type="submit" value="Rozpocząć inwentaryzację" /></p>
JK 78 </form>
79
80 <?php
6cba3f 81 }
JK 82 catch(Exception $e) {
83     echo '<p style="color:red">Wystąpił błąd: '.$e->getMessage().'</p>';
84 }
85
175a52 86 include('design/bottom.php');
JK 87 ?>