Opiszę na przykładzie co muszę zrobić. Mam zbiór książek - każda ksiązka jest opisana w osobnym pliku xml poprzez jakieś atrybuty (tytuł, autor itp.). Następnie mam formularz do wyszukiwania według pewnych kryteriów. To co zaznaczyłem/wpisałem w formularzu jest przesyłane do skryptu php, który wyszukuje wśród tych plików xml odpowiedniej wartości i następnie wyświetla zbiór książek spełniających określone kryteria.

Mam nadzieję, że jasno opisałem o co mi chodzi, bo programowanie to dla mnie czarna magia. Szukałem jakiś gotowych schematów, manuali pokazujących/opisujących taki przykład. Czegoś co poprowadziło by mnie za rękę żeby to wykonać, ale nic co by do tego przycepić nie znalazłem. Zacząłem więc kroczek po kroczku coś tworzyć i wyszło na razie takie coś.

Na początek plik ksiazka1.xml:
  1. <?xml version="1.0" encoding="utf-8" ?>
  2.  
  3. <literatura>
  4. <ksiazka>
  5. <tytul>Potop</tytul>
  6. <autor>Henryk Sienkiewicz</autor>
  7. <gatunek>Powieść</gatunek>
  8. <opis>Powieść historyczna epoki pozytywizmu.</opis>
  9. <wydawnictwo>GREG</wydawnictwo>
  10. <wydana>2001</wydana>
  11. </ksiazka>
  12. </literatura>


Wyszukiwarka:
  1. <head><title>Wyszukiwarka książek</title></head>
  2. <body><h2 style="text-align: center; ">Wyszukiwarka książek</h2>
  3. <form method="post" action="bnm.php">
  4.  
  5. <legend>Tytuł</legend>
  6. <input type="text" name="tytul" />
  7.  
  8. <legend>Autor</legend>
  9. <input type="text" name="autor" />
  10.  
  11. <legend>Opcje</legend>
  12. <input type="reset" value="Wyczyść formularz" />
  13. <input type="submit" value="Szukaj książek" />
  14.  
  15. </form>
  16. </body></html>


Skrypt do wyszukiwania:
  1. <?php
  2. $tytul = $_POST['tytul'];
  3. $autor = $_POST['autor'];
  4.  
  5. $xml = simplexml_load_file('ksiazka1.xml');
  6.  
  7. if ((string) $xml->ksiazka->tytul == $tytul) {
  8. echo &#092;"TYTUŁ:\", '&nbsp';
  9. echo $xml->ksiazka->tytul, '
  10. ';
  11. echo &#092;"AUTOR:\", '&nbsp';
  12. echo $xml->ksiazka->autor, '
  13. ';
  14. echo &#092;"GATUNEK:\", '&nbsp';
  15. echo $xml->ksiazka->gatunek, '
  16. ';
  17. echo &#092;"OPIS:\", '&nbsp';
  18. echo $xml->ksiazka->opis, '
  19. ';
  20. echo &#092;"WYDAWNCTWO:\", '&nbsp';
  21. echo $xml->ksiazka->opis, '
  22. ';
  23. echo &#092;"ROK WYDANIA:\", '&nbsp';
  24. echo $xml->ksiazka->wydana, '
  25. ';
  26. }
  27.  
  28. if ((string) $xml->ksiazka->autor == $autor) {
  29. echo &#092;"TYTUŁ:\", '&nbsp';
  30. echo $xml->ksiazka->tytul, '
  31. ';
  32. echo &#092;"AUTOR:\", '&nbsp';
  33. echo $xml->ksiazka->autor, '
  34. ';
  35. echo &#092;"GATUNEK:\", '&nbsp';
  36. echo $xml->ksiazka->gatunek, '
  37. ';
  38. echo &#092;"OPIS:\", '&nbsp';
  39. echo $xml->ksiazka->opis, '
  40. ';
  41. echo &#092;"WYDAWNCTWO:\", '&nbsp';
  42. echo $xml->ksiazka->opis, '
  43. ';
  44. echo &#092;"ROK WYDANIA:\", '&nbsp';
  45. echo $xml->ksiazka->wydana, '
  46. ';
  47. }
  48.  
  49. ?>


A teraz pytania:
1. Wyszukiwanie sprawdza się jedynie jeżeli nazwa podana = nazwa w pliku xml. Chodzi mi o to by szukało bez względu na wielkość wpisywanych liter.

2. Kolejna rzecz - jeżeli wypełnię obydwa pola wyszukiwania (prawidłowo) to wyswietli mi podwójnie wynik... co zrobić by tylko jedno?

3. Czy istnieje inny sposób na zrobienie spacji - użyte przezemnie '&nbsp' sprawdza się jedynie w Explorerze... w Firefoxie zamiast spacji pokazuje mi '&nbsp'.

PS. Tylko mam prośbę jak ktoś będzie mi podpowiadał to żeby troszku dokładnie pisał gdzie i jak, bo jak mówiłem na początku jestem lama z tego i mogę nie zaczaić o co biega lub gdzie zmienić.