Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL]Kolejność zapytań?
Forum PHP.pl > Forum > Przedszkole
piraciq
Witam

pytanie:

czy ma znacznie ktora klauzula jest wykonywana wczesniej jak ponizej
  1. where wojewodzctwo ='1' or wojewodzctwo ='2' or wojewodzctwo ='3' or wojewodzctwo ='4' or wojewodzctwo ='5' and miasto ='1' and miasto ='2' and typ ='1' and typ ='2' and typ ='3' and typ ='4' and 'pok1' = 1


czy dajmy na to "or" czy "and" powinno byc pierwsze w zapytaniu??
hacek
Dla pewności daj w nawiasie:
Kod
WHERE (wojewodzctwo ='1' or wojewodzctwo ='2' or wojewodzctwo ='3' or wojewodzctwo ='4' or wojewodzctwo ='5') and miasto ='1' and miasto ='2' and typ ='1' and typ ='2' and typ ='3' and typ ='4' and 'pok1' = 1
piraciq
ok mam takie cos:
  1. <?php
  2. $wh = array();
  3.  
  4. foreach ($_POST as $key => $value) {
  5. if ($key!="search_adv" && $key!="wojewodzctwo" && $key!="miasto" && $key!="typ")
  6. {
  7.  
  8. $wh[]="'$key' = 1";
  9. }
  10. }
  11.  
  12. if ($_POST['wojewodzctwo']!="all")
  13. {
  14. $wh[]="wojewodzctwo = '".$_POST['wojewodzctwo']."'";
  15. }
  16. else
  17. {
  18. $sql->query("SELECT * FROM `wojewodzctwo` ORDER BY `id` ASC");
  19. $reg = array();
  20. $reg_num = 0;
  21.  
  22. while($row = $sql->fetchArray())
  23. {
  24. $reg[$reg_num] = $row;
  25. $reg_num++;
  26. }
  27. for($i=0;$i<$reg_num;$i++)
  28. {
  29. $szukaj.="wojewodzctwo ='".$reg[$i]['id']."' or ";
  30. }
  31.  
  32.  
  33. }
  34. if ($_POST['miasto']!="all")
  35. {
  36. $wh[]="miasto = '".$_POST['miasto']."'";
  37. }
  38. else
  39. {
  40. $sql->query("SELECT * FROM `miasto` ORDER BY `id` ASC");
  41. $reg = array();
  42. $reg_num = 0;
  43.  
  44. while($row = $sql->fetchArray())
  45. {
  46. $reg[$reg_num] = $row;
  47. $reg_num++;
  48. }
  49. for($i=0;$i<$reg_num;$i++)
  50. {
  51. $szukaj.="miasto ='".$reg[$i]['id']."' or ";
  52. }
  53. }
  54. if ($_POST['typ']!="all")
  55. {
  56. $wh[]="typ = '".$_POST['typ']."'";
  57. }
  58. else
  59. {
  60. $sql->query("SELECT * FROM `typ` ORDER BY `id` ASC");
  61. $reg = array();
  62. $reg_num = 0;
  63.  
  64. while($row = $sql->fetchArray())
  65. {
  66. $reg[$reg_num] = $row;
  67. $reg_num++;
  68. }
  69. for($i=0;$i<$reg_num;$i++)
  70. {
  71. $szukaj.="typ ='".$reg[$i]['id']."' or ";
  72. }
  73. }
  74.  
  75.  if (!empty($wh) || isset($szukaj))
  76. {
  77. $where = 'where '.$szukaj.implode(' and ', $wh); // w tym miejscu generuje mi sie zapytanie
  78. }
  79.  
  80. $result=$sql->query('select * from nocleg '.$where);
  81.  $ile=mysql_num_rows($result);
  82. ?>


to jest wyszukiwarkai tak jesli user wybierze w polu select wszystkie to zmiena ma wartosc all i dlatego w zapytaniu mam miasto =1 or miasto=2 ...
i tu wlasnie ma mi wybierac wszystkie rekordy gdzie miasto ma 1,2,3,4 itd..



Ok problem rozwiazany mozna zamknąć :]
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.