Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kilka zmiennych instrukcja WHERE
Forum PHP.pl > Forum > Bazy danych > MySQL
slawekxx
Jak napisać zapytanie do bazy z kilkoma zmiennymi za instrukcją WHERE chodzi mi o kod jak mogę to połączyć aby po spełnieniu kilku warunków wyświetlały się tylko określone rekordy ? To jest kod tylko do jednego warunku
  1. if ($_POST)
  2. {
  3. if (!empty($_POST['region']) && is_scalar($_POST['region']))
  4. {
  5. $region = mysql_real_escape_string($_POST['region']);}
  6. else{ echo 'blad';
  7.  
  8. }
  9. $resource = mysql_query('SELECT DISTINCT `name_pl`,`rstation_id`,`region`,`dzien`,`czas`,`wind_dir`,`wind_force`,`tempera
    ture`,`pressure`,`lat`,`lng` FROM region , pogoda WHERE region = "'
    .$region.'" AND region.rstation_id=pogoda.station_id ') or die('Blad');
devnul
  1. SELECT co FROM skad WHERE warunek1 AND|OR warunek2
slawekxx
a co z POST ? ten pierwszy warunek jest realizowany z pomocą input type radio a drugi chcę zrobić za pomocą tzw.listy rozwijanej
devnul
a jaka jest różnica w danych zwracanych przez input[radio] a select? Podpowiem: żadna. Zrób z drugim polem dokładnie tak jak zrobiłeś z pierwszym. Nie rozumiem w czym problem?
slawekxx
wyskakuje mi błąd blad- Temperatura

  1. if ($_POST)
  2. {
  3. if (!empty($_POST['region']) && is_scalar($_POST['region']))
  4. {
  5. $region = mysql_real_escape_string($_POST['region']);}
  6. else{ echo 'blad- Region';
  7.  
  8. }
  9.  
  10.  
  11. if ($_POST)
  12. {
  13. if (!empty($_POST['temperature']) && is_scalar($_POST['temperature']))
  14. {
  15. $region = mysql_real_escape_string($_POST['temperature']);}
  16. else{ echo 'blad- Temperatura';
  17.  
  18. }
  19.  
  20.  
  21. $resource = mysql_query('SELECT DISTINCT
  22.  
  23. `name_pl`,`rstation_id`,`region`,`dzien`,`czas`,`wind_dir`,`wind_force`,`tempera
    ture`,`pressure`,`lat`,`lng` FROM region , pogoda WHERE
  24.  
  25. region = "'.$region.'" AND temperature="'.$temperature.'" AND region.rstation_id=pogoda.station_id ORDER BY `name_pl`,`dzien`,`czas` DESC ')
  26.  
  27. or die('Blad');


region mam wybierany za pomocą input type radio coś takiego
  1. <form name="form1" id="form1" action="" method="post">
  2.  
  3. <tr><td><b>Wybierz Region</b></td></tr>
  4. <td><input type="radio" name="region" value="Grecja" />Cały obszar Grecji</td>
  5. <td><input type="radio" name="region" value="Cyklady" />Cyklady</td>
  6. <td><input type="radio" name="region" value="Peloponez" />Peloponez</td>
  7. <td><input type="radio" name="region" value="Dodekanez" />Dodekanez</td>
  8. <td><input type="radio" name="region" value="Epirus" />Epirus</td>
  9. <td><input type="radio" name="region" value="Kreta" />Kreta</td>
  10. <td><input type="radio" name="region" value="Macedonia Srodkowa" />Macedonia Środkowa</td>
  11. <tr><td><input type="radio" name="region" value="Macedonia Wschodnia i Tracja" />Macedonia Wschodnia</td>
  12. <td><input type="radio" name="region" value="Macedonia Zachodnia" />Macedonia Zachodnia</td>
  13. <td><input type="radio" name="region" value="Sporady" />Sporady</td>
  14. <td><input type="radio" name="region" value="Tesalia" />Tesalia</td>
  15. <td><input type="radio" name="region" value="Wyspy Egejskie Północne" />Wyspy Egejskie Północne</td>
  16. <td><input type="radio" name="region" value="Wyspy Jońskie" />Wyspy Jońskie</td>
  17. <td><input type="radio" name="region" value="Wyspy Sorońskie" />Wyspy Sorońskie</td></tr>
  18.  
  19. </tr>
  20. <td><input type="submit" name="Wybierz" value="Wybierz"/></td>
  21. </form>


a jak teraz mam dodać wybieranie z listy rozwijanej tak aby się to nie gryzło :-) ?
devnul
a gdzie masz zmienną $temperature? bo ja tam widzę że dwa razy tworzysz zmienną $region
slawekxx
A, w którym miejscu kodu uważasz, że tworzę dwa razy zmienną region ?
lord2105
Jak wyciągasz dane z dwóch tabel to stosuj zapytanie tego typu
  1. SELECT user.id,user.login,news.id FROM user,news WHERE user.id = news.id


Wiem, że to troche przykład bez sensu tongue.gif ale to tylko dla zobrazowania.

Pokazuje bład temperature bo post temperature nie jest zmienna skalarną:

Zmienne Skalarne to takie, które zawierają zmienne typu integer, float, string lub wartość logiczną. Rodzaje tablicy, obiektów i zasobów nie są skalarne.

A na końcu polecam zmienić:

  1. or die('Blad');


na:

slawekxx
To jak mam poprawić zapytanie , bo się już zaczynam gubić :-)
devnul
Cytat
A, w którym miejscu kodu uważasz, że tworzę dwa razy zmienną region ?

  1. if ($_POST)
  2. {
  3. if (!empty($_POST['region']) && is_scalar($_POST['region']))
  4. {
  5. $region = mysql_real_escape_string($_POST['region']);} //PIERWSZY RAZ
  6. else{ echo 'blad- Region';
  7.  
  8. }
  9.  
  10.  
  11. if ($_POST)
  12. {
  13. if (!empty($_POST['temperature']) && is_scalar($_POST['temperature']))
  14. {
  15. $region = mysql_real_escape_string($_POST['temperature']);}//DRUGI RAZ
  16. else{ echo 'blad- Temperatura';
  17.  
  18. }

no i oczywiście w formularzu nie masz zdefiniowanego pola z temperaturą
slawekxx
a teraz wyskoczył mi taki błąd "blad- TemperaturaYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'temperatura=""AND region.rstation_id=pogoda.station_id ORDER BY `name_pl`,`dzien' at line 1"
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.