PHP Centeri avaleht Skriptikogu Küsimuste-vastuste leht Teadete vaatamine ja saatmine Foorum - koht küsimiseks Otsingumootor Siit saad infot meie kohta

Kasutajanimi:  
  Parool: 
  Registreeri!   Unustasid salasõna?

Foorumid Programmeerimine PHP & MySQL date ja mysql
Autor Abi Postitus Abi

riks
möku

Postitusi: 86
Tase: 4
Olek: Offline

Hinnang: Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10
date ja mysql

Tegin tabeli
PHP kood:

CREATE TABLE `menüü` (
  `
idint(11NOT NULL auto_increment,
  `
algusdate NOT NULL default '0000-00-00',
  `
loppdate NOT NULL default '0000-00-00',
  `
esmaspäevvarchar(32NOT NULL default '',
  `
teisipäevvarchar(32NOT NULL default '',
  `
kolmapäevvarchar(32NOT NULL default '',
  `
neljapäevvarchar(32NOT NULL default '',
  `
reedevarchar(32NOT NULL default '',
  
PRIMARY KEY  (`id`)
TYPE=MyISAM AUTO_INCREMENT=;


Ning nüüd on vaja saada sealt välja vaja saada eelmise/selle/järgmise nädala menüü.
PHP kood:

SELECT FROM menüü WHERE algus >= DATE_SUB(NOW(), INTERVAL 119 HOUR);


Ehk valib tabelist rea, mille algus on vähemalt 119 tundi enne praegust aega, ehk siis 4 päeva ja 23 tundi varem. Kahjuks annab '>= DATE_SUB(NOW(), INTERVAL 119 HOUR' kohta veateate. Uurisin seda manuaali, aga andmebaasiga seal ei tegeletud. Et kas seda väikest arvutamist saab ka andmebaasi päringusse panna või peab hakkama arvutama, kasutades if'e ja echo'sid?

03.04.2005 17:11:17 Vajutades siia näed kasutaja riks profiili

teadjamees


Postitusi: 492
Tase: 6
Olek: Offline

Hinnang: Administratiivhinnang: 6/10Administratiivhinnang: 6/10Administratiivhinnang: 6/10Administratiivhinnang: 6/10Administratiivhinnang: 6/10Administratiivhinnang: 6/10
RE: date ja mysql

Pole proovinud aga millegi pärast kahtlen, et tabeli nimes täpitähed lubatud on. Võin eksida...

03.04.2005 17:25:53 Vajutades siia näed kasutaja teadjamees profiili

andoro

Postitusi: 1235
Tase: 9
Olek: Offline

Hinnang: Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10
RE: date ja mysql

Tsiteeritud tekst:
Pole proovinud aga millegi pärast kahtlen, et tabeli nimes täpitähed lubatud on. Võin eksida...


On küll lubatud, aga üldiselt ei soovitaks.

___________________________________________________
Ma oskan lugeda numbreid  2 3 4 5 6 7 8 9 10 poiss, emand, kunn, äss.

03.04.2005 17:31:20 Vajutades siia näed kasutaja andoro profiili

eero


Postitusi: 890
Tase: 8
Olek: Offline

Hinnang: Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10
RE: date ja mysql

No mis veateate see osa siis annab? Sest süntaks ise on küll õige...
Küsimusi tekitas pisut too 119 tunni osa, järgnev teeb sama välja:
Koodijupp:
SELECT * FROM menüü WHERE algus > DATE_SUB(NOW(), INTERVAL 5 DAY);
PS. Samamoodi nagu PHP'ski, on ka MySQL'is lubatud ASCII sümbolid 65-90, 97-122 ja 127-255.

___________________________________________________
This foreign policy stuff is a little frustrating! - George W. Bush

03.04.2005 18:41:07 Vajutades siia näed kasutaja eero profiili

riks
möku

Postitusi: 86
Tase: 4
Olek: Offline

Hinnang: Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10
RE: date ja mysql

Süntaksis oli vale =>. Jah, algusest arvutab ta ilusti välja 5 päeva, kuid kui ma tahan 'lopp' kaudu seda välja arvutada, siis ei tööta. Ehk, kui lõpu kuupäev on 2005-04-08 ning hetkel 2005-04-04, siis ei suudeta tingimust täita. :S
Koodijupp:
$result = mysql_query("SELECT * FROM menüü WHERE lopp < DATE_SUB(NOW(), INTERVAL 6 DAY)") or die(mysql_error());


-edit-
Tänud, sain asja korda.
Koodijupp:
$result = mysql_query("SELECT * FROM menüü WHERE algus > DATE_SUB(NOW(), INTERVAL 6 DAY) AND lopp BETWEEN CURdate() AND DATE_ADD(CURdate(),INTERVAL 5 DAY)") or die(mysql_error());


Seda postitust on muudetud 3 korda (viimati muudeti 2005-04-05 17:11:37 riks poolt)

03.04.2005 22:08:14 Vajutades siia näed kasutaja riks profiili
Kokku: 25950 registreerunud kasutajat, 9711 teemat, 54603 postitust.
Täna on neljapäev, 2. aprill 2020. Kell on 11:36.

    Vaata selle lehe printerisõbralikku versiooni

Avaleht   -    Skriptikogu   -    Teated   -    Foorum   -    Reklaam   -    Tagasiside   -    Kasutamise reeglid

© Copyright 2002-2020 PHP Center. Kõik õigused reserveeritud.