Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]wyswietlanie danych
Forum PHP.pl > Forum > Przedszkole
gosienkami
w tabeli mam kolumny od, do, które przechowują daty. Jak napisać warunek zeby dane dany rekord był wyswietlony miedzy datami, gdzie data aktualna musi sie miescic w ich zakresie.
erix
  1. BETWEEN
gosienkami
ale nie chce na sztywno w bazie tylko to bedzie sie zmieniać np w bazie mam zapisy
od 2009-02-01 do 2009-02-28
od 2008-12-01 do 2009-03-20
i jezeli do tego zakresu należy dzisiejsza data to ma wyswietlać napis a jak nie to nic, pozatym aby było wyswietlane musi spełniać warunek aktywnosc gdy bedzie wpisane bezterminowo lub 1;

mam tak ale nic nie wyswietla:(

  1. <?php
  2. $zapytanie=mysql_query(&#092;"select * from wyswietl\") or die (\"blad\");
  3.      while($rekord = mysql_fetch_array($zapytanie)) {
  4.    //$date=date(\"Y-M-D\");
  5.    //::
  6.    if($rekord['datap']<='date'|| $rekord['dataz']<='date')
  7.         $aktywnosc=$rekord['aktywnosc'];
  8.     elseif($rekord['aktywnosc']=='bezterminowo')
  9.         echo '';
  10.     elseif($aktywnosc=='1')
  11.    echo'<a class ="stopka" href=http://'.$rekord['url'].'>'.$rekord['tytul']. ' | ' .'</a>';
  12.    elseif($aktywnosc='0')    
  13.     echo ' ';
  14.     else
  15.     echo ' ';}
  16. ?>
adasiu
  1. <?php
  2. $data = date('Y-m-d');
  3. $zapytanie = mysql_query("SELECT * FROM `wyswietl` WHERE (`data_od` < '{$data}' AND `data_do` >= '{$data}') OR `bezterminowo` = '1' AND `aktywnosc` = '1' ;");
  4. ?>


powinno działać
pozdrawiam
gosienkami
nic nie wyswietla
Cytat(adasiu @ 3.02.2009, 11:31:11 ) *
  1. <?php
  2. $data = date('Y-m-d');
  3. $zapytanie = mysql_query(&#092;"SELECT * FROM `wyswietl` WHERE (`data_od` < '{$data}' AND `data_do` >= '{$data}') OR `bezterminowo` = '1' AND `aktywnosc` = '1' ;\");
  4. ?>


powinno działać
pozdrawiam
adasiu
ale pozmieniałeś nazwy kolumn w zapytaniu na takie jak masz w bazie??
gosienkami
tak
adasiu
  1. CREATE TABLE IF NOT EXISTS `produkt` (
  2. `produkt_id` int(11) NOT NULL AUTO_INCREMENT,
  3. `produkt_nazwa` text NOT NULL,
  4. `produkt_data_od` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  5. `produkt_data_do` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  6. `produkt_bezterminowosc` BINARY(1) NOT NULL,
  7. `produkt_aktywnosc` BINARY(1) NOT NULL,
  8. PRIMARY KEY (`produkt_id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  10.  
  11. INSERT INTO `produkt` (`produkt_id`, `produkt_nazwa`, `produkt_data_od`, `produkt_data_do`, `produkt_bezterminowosc`, `produkt_aktywnosc`) VALUES
  12. (1, 'jakis produkt', '0000-00-00 00:00:00', '0000-00-00 00:00:00', '1', '1'),
  13. (2, 'jakis produkt 1', '0000-00-00 00:00:00', '0000-00-00 00:00:00', '1', '0'),
  14. (3, 'jakis produkt 2', '2009-02-01 00:00:00', '2009-02-05 00:00:00', '0', '1'),
  15. (4, 'jakis produkt 3', '0000-00-00 00:00:00', '0000-00-00 00:00:00', '1', '0'),
  16. (5, 'dfsfdfsdf', '2009-02-01 00:00:00', '2009-02-02 00:00:00', '0', '1');
  17.  
  18. SELECT *
  19. FROM `produkt` WHERE (
  20. `produkt_data_od` < NOW( ) AND `produkt_data_do` >= NOW( )
  21. ) OR `produkt_bezterminowosc` = '1' AND `produkt_aktywnosc` = '1'


przetestuj u siebie w bazie winksmiley.jpg
pozdrawiam
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.