Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql + php]Zapytanie SQL
Forum PHP.pl > Forum > Przedszkole
k_uba
Chcialbym wyciagnaz z bazy dokumenty ktore zostaly dodane do bazy miedzy dwoma datami. Wyskakuja mi bledy ze jest zle zrobione zapytanie. Moje zapytanie wyglada nastepujaca:
  1. <form action = 'szukaj.php' method = 'POST'>
  2. <Table>
  3. <tr>
  4. <td>
  5. <b> Data od:</b>
  6.  
  7. </td>
  8. <td>
  9. <select name="rok_1">
  10. <option value="1950">1950</option>
  11. <option value="1951">1951</option>
  12. <option value="1952">1952</option>
  13. <option value="1953">1953</option>
  14. </select>
  15. -
  16. <select name="miesiac_1">
  17. <option value="01">Styczen</option>
  18. <option value="02">Luty</option>
  19. </select>
  20. -
  21. <select name="dzien_1">
  22. <option value="01">01</option>
  23. <option value="02">02</option>
  24. </select>
  25. </td>
  26. </tr>
  27. <tr>
  28. <td>
  29. <b> Data do:</b>
  30.  
  31. </td>
  32. <td>
  33. <select name="rok_2">
  34. <option value="1950">1950</option>
  35. <option value="1951">1951</option>
  36. </select>
  37. -
  38. <select name="miesiac_2">
  39. <option value="01">Styczen</option>
  40. <option value="02">Luty</option>
  41. </select>
  42. -
  43. <select name="dzien_2">
  44. <option value="01">01</option>
  45. <option value="02">02</option>
  46. <option value="03">03</option>
  47. </select>
  48. </td>
  49. <td>
  50. <INPUT TYPE = 'submit' NAME ='Szukaj_data_dodania' VALUE = 'Szukaj'/>
  51. </td>
  52. </tr>
  53. </Table>
  54.  
  55. </form>
  56.  
  57. <?php
  58. if (isset ($_POST ['Szukaj_data_dodania'])) {
  59.  
  60. if (empty ($_POST ['rok_1'])) {
  61. $rok_1 = FALSE;
  62. }else{
  63. $rok_1 = $_POST ['rok_1'];
  64. }
  65.  
  66. if (empty ($_POST ['miesiac_1'])) {
  67. $miesiac_1 = FALSE;
  68. }else{
  69. $miesiac_1 = $_POST ['miesiac_1'];
  70. }
  71.  
  72. if (empty ($_POST ['dzien_1'])) {
  73. $dzien_1 = FALSE;
  74. }else{
  75. $dzien_1 = $_POST ['dzien_1'];
  76. }
  77.  
  78. if (empty ($_POST ['rok_2'])) {
  79. $rok_2 = FALSE;
  80. }else{
  81. $rok_2 = $_POST ['rok_2'];
  82. }
  83.  
  84. if (empty ($_POST ['miesiac_2'])) {
  85. $miesiac_2 = FALSE;
  86. }else{
  87. $miesiac_2 = $_POST ['miesiac_2'];
  88. }
  89.  
  90. if (empty ($_POST ['dzien_2'])) {
  91. $dzien_2 = FALSE;
  92. }else{
  93. $dzien_2 = $_POST ['dzien_2'];
  94. }
  95.  
  96. if ($rok_1 && $miesiac_1 && $dzien_1 && $rok_2 && $miesiac_2 && $dzien_2) {
  97.  
  98. include("wyswietl_dok.php");
  99. $conn=@mysql_connect("localhost","root","kuba");
  100. @mysql_select_db("praca",$conn);
  101. $query = "SELECT Id_dokumenty, Imie, Nazwisko, Nazwa, Rodzaj, Tytul, Rok_wydania, 
  102. Slowo_klucz, Data_dodania, plik_nazwa 
  103. FROM autorzy INNER JOIN dokumenty INNER JOIN dziedzina INNER JOIN file 
  104. WHERE Id_dokumenty = Id_dziedzina AND Id_dokumenty = Id_autorzy 
  105. AND id_dokumenty = Id_file WHERE rok_wydania 
  106. BETWEEN '$rok_1-$miesiac_1-$dzien_1' AND '$rok_2-$miesiac_2-$dzien_2' 
  107. ORDER BY id_dokumenty";
  108. $select=mysql_query($query) or die(mysql_error());
  109. wyswietl($select,array("ID", "Imie autora", "Nazwisko autora", "Dziedzina", "Rodzaj", "Tytul", 
  110. "Rok wydania", "Slowo klucz", "Data doadania", "Plik", "Usun", "Zobacz"));
  111.  }
  112.  
  113. }
  114.  
  115. ?>

Z gory dzieki za pomoc
Cienki1980
A pokaż może te błędy.
k_uba
Oto bledy:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE rok_wydania BETWEEN '1950-01-01' AND '2013-01-01' ORDER BY id_dokumenty' at line 1
My4tic
Poza tym wypadałoby filtrować jakoś dane...

http://pl.php.net/manual/en/function.mysql-escape-string.php
Cienki1980
Masz dwa razy 'WHERE' w zapytaniu.

I jak dla mnie nie masz 'ON' w klauzulach 'INNER JOIN' ale może i bez tego działać będzie ... chociaż nie wiem czy poprawnie.
nospor
masz dwa slowa where w zapytaniu.
  1. WHERE..... WHERE .....

zle

byc moze powinno byc:
  1. WHERE..... AND .....


edit: przenosze
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.