Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pobieranie $zmiennej >= $a && <= $b
Forum PHP.pl > Forum > Przedszkole
amator666
Witam !
Mój pierwszy post zaczynam z php, mam taki problem. Mam plik z forumalrzem szukania, chciałbym aby do zmiennej wpisać wartość z 2 pól w formularzu. Czyli przykładowo cena w formularzu od 1 zł do 3 zł

formularz
  1. <select class="small" name="cena1">
  2. <option value="">Any</option>
  3. <option value="1">1</option>
  4. <option value="2">2</option>
  5. <option value="3">3</option>
  6. <option value="4">4</option>
  7. <option value="5">5</option>
  8. </select>
  9.  
  10.  
  11. <select class="small" name="cena2">
  12. <option value="">Any</option>
  13. <option value="1">1</option>
  14. <option value="2">2</option>
  15. <option value="3">3</option>
  16. <option value="4">4</option>
  17. <option value="5">5</option>
  18. </select>
  19. </div>


strona odbierajaca wyniki
  1. <?php
  2. ...
  3. $cena = $_POST['cena'];
  4. ...
  5.  
  6. if($location != '')
  7. {
  8. $location = "p1.meta_key='state_value' AND p1.meta_value='$location'";
  9. }
  10. else
  11. {
  12. $location = "p1.meta_key='state_value'";
  13. }
  14.  
  15.  
  16. $query = "SELECT p.*
  17. FROM wp_posts AS p
  18. INNER JOIN wp_postmeta AS p1
  19. ON (p.ID = p1.post_id)
  20. CROSS JOIN
  21. wp_postmeta AS p2
  22. USING (post_id)
  23. CROSS JOIN
  24. wp_postmeta AS p3
  25. USING (post_id)
  26. CROSS JOIN
  27. wp_postmeta AS p4
  28. USING (post_id)
  29. CROSS JOIN
  30. wp_postmeta AS p5
  31. USING (post_id)
  32. WHERE
  33. $cena
  34. AND
  35. $bedrooms
  36. AND
  37. $price
  38. AND
  39. $bathrooms
  40. AND
  41. $rob
  42. ORDER BY convert(p3.meta_value, signed)
  43. ";
  44.  
  45.  
  46. $pageposts = $wpdb->get_results($query, OBJECT);
  47. ?>


Chciałbym aby
  1. $cena = $_POST['cena'];

$cena była w przedziale zaleznie jak podano w formularzu np >= $cena1 && <=$cena2 ;

jak to zrobić ?
sada

  1. $cena1 = $_POST['cena1'];
  2. $cena2 = $_POST['cena2'];


a w zapytaniu
  1. WHERE cena BETWEEN '.$cena1.' AND '.$cena2.'
amator666
Coś nie działa niestety, może źle wytłumaczyłem,
Tak wyglądają pliki w całości:
searchfrom (formularz)
  1. <?php include 'var.php'; ?>
  2. <form <?php if ($ts_expose == 'Yes'){ ?> class="expose"<?php } ?> action="<?php bloginfo('url'); ?>/?page_id=<?php echo $ts_search; ?>" method="post">
  3.  
  4.  
  5. <!-- Start of a row -->
  6. <div class="row">
  7. <label>Lokalizacja</label>
  8. </div>
  9.  
  10. <div class="row">
  11. <div class="box large border_light">
  12. <!-- COUNTRIES -->
  13. <?php
  14. if ($ts_country == "Poland")
  15. {
  16. include "inc/polselect.php";
  17. }
  18. ?>
  19. </div>
  20. </div>
  21.  
  22. <div class="row">
  23. <label>Pokoje</label>
  24. <label>&nbsp;&nbsp;Lazienka&nbsp;&nbsp;&nbsp;&nbsp;</label>
  25. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cena&nbsp;&nbsp;&nbsp;&nbsp;</label>
  26. </div>
  27.  
  28. <div class="row">
  29. <div class="box small border_light">
  30. <select class="small" name="beds">
  31. <option value="">Wszystko</option>
  32. <option value="1">1</option>
  33. <option value="2">2</option>
  34. <option value="3">3</option>
  35. <option value="4">4</option>
  36. <option value="5">5+</option>
  37. </select>
  38. </div>
  39.  
  40. <div class="box medium border_light">
  41. <select class="medium" name="baths">
  42. <option value="">Wszystko</option>
  43. <option value="1">1</option>
  44. <option value="2">2</option>
  45. <option value="3">3</option>
  46. <option value="4">4</option>
  47. <option value="5">5+</option>
  48. </select>
  49. </div>
  50.  
  51. <div class="box medium border_light">
  52. <select class="medium" name="buy_price">
  53. <optgroup label="Kupno">
  54. <option value="">Wszystko</option>
  55. <option value="100000"><?php echo $ts_cur; ?>100,000+</option>
  56. <option value="200000"><?php echo $ts_cur; ?>200,000+</option>
  57. <option value="300000"><?php echo $ts_cur; ?>300,000+</option>
  58. <option value="400000"><?php echo $ts_cur; ?>400,000+</option>
  59. <option value="500000"><?php echo $ts_cur; ?>500,000+</option>
  60. <optgroup label="Wynajem">
  61. <option value="300"><?php echo $ts_cur; ?>300+</option>
  62. <option value="400"><?php echo $ts_cur; ?>400+</option>
  63. <option value="500"><?php echo $ts_cur; ?>500+</option>
  64. <option value="600"><?php echo $ts_cur; ?>600+</option>
  65. <option value="700"><?php echo $ts_cur; ?>700+</option>
  66. </select>
  67. </div>
  68.  
  69.  
  70. </div>
  71.  
  72. <div class="row">
  73. <label>Kupno / Wynajem</label>
  74. </div>
  75.  
  76. <div class="row">
  77. <div class="box medium2 border_light">
  78. <select class="medium2" name="rentorbuy">
  79. <option value="">Wszystko</option>
  80. <option value="Rent">wynajem</option>
  81. <option value="Sale">kupno</option>
  82. </select>
  83. </div>
  84.  
  85. <div class="left">
  86. <input id="submit" type='image' src='<?php bloginfo('template_directory'); ?><?php echo $search; ?>' onMouseOver="this.src='<?php bloginfo('template_directory'); ?><?php echo $search_hover; ?>'" onMouseOut="this.src='<?php bloginfo('template_directory'); ?><?php echo $search; ?>'"/>
  87. </div>
  88. </div>
  89. <div class="clear"></div>
  90. </form>


searchquery (zapytania)
  1. <?php
  2. $location = $_POST['location'];
  3. $bedrooms = $_POST['beds'];
  4. $bathrooms = $_POST['baths'];
  5. $price = $_POST['buy_price'];
  6. $rob = $_POST['rentorbuy'];
  7.  
  8.  
  9. if($location != '')
  10. {
  11. $location = "p1.meta_key='state_value' AND p1.meta_value='$location'";
  12. }
  13. else
  14. {
  15. $location = "p1.meta_key='state_value'";
  16. }
  17.  
  18. if($bedrooms != '')
  19. {
  20. $bedrooms = "p2.meta_key='beds_value' AND p2.meta_value='$bedrooms'";
  21. }
  22. else
  23. {
  24. $bedrooms = "p2.meta_key='beds_value'";
  25. }
  26.  
  27. if($price != '')
  28. {
  29. $price = "p3.meta_key='price_value' AND convert(p3.meta_value, signed) >= '$price'";
  30. }
  31. else
  32. {
  33. $price = "p3.meta_key='price_value'";
  34. }
  35.  
  36. if($bathrooms != '')
  37. {
  38. $bathrooms = "p4.meta_key='baths_value' AND p4.meta_value='$bathrooms'";
  39. }
  40. else
  41. {
  42. $bathrooms = "p4.meta_key='baths_value'";
  43. }
  44.  
  45. if($rob != '')
  46. {
  47. $rob = "p5.meta_key='rob_value' AND p5.meta_value='$rob'";
  48. }
  49. else
  50. {
  51. $rob = "p5.meta_key='rob_value'";
  52. }
  53.  
  54.  
  55. $query = "SELECT p.*
  56. FROM wp_posts AS p
  57. INNER JOIN wp_postmeta AS p1
  58. ON (p.ID = p1.post_id)
  59. CROSS JOIN
  60. wp_postmeta AS p2
  61. USING (post_id)
  62. CROSS JOIN
  63. wp_postmeta AS p3
  64. USING (post_id)
  65. CROSS JOIN
  66. wp_postmeta AS p4
  67. USING (post_id)
  68. CROSS JOIN
  69. wp_postmeta AS p5
  70. USING (post_id)
  71. WHERE
  72. $location
  73. AND
  74. $bedrooms
  75. AND
  76. $price
  77. AND
  78. $bathrooms
  79. AND
  80. $rob
  81. ORDER BY convert(p3.meta_value, signed)
  82. ";
  83.  
  84.  
  85. $pageposts = $wpdb->get_results($query, OBJECT);
  86. ?>
  87.  


I Chciałbym żeby w formularzu można było wybrać np ilość pokoi "od" "do" w formularzu wiadomo ustawiamy 2 selecty np beds1 i beds2
i, żeby działało w search_query musze mieć zmienną
$bedrooms = $_POST['beds']; (chciałbym żeby była większa/równa od $beds1 i mniejsza/równa $beds2)


Dziekuje za pomoc
sada
Przecież ci napisałem jak powinna wyglądac konstrukcja zapytania

  1. SELECT * FROM tabela WHERE cena BETWEEN '$cena1' AND '$cena2'


oczywiście w skrócie
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.