Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

select "sve rowove koji su mladji od 5 dana"

[es] :: PHP :: select "sve rowove koji su mladji od 5 dana"

[ Pregleda: 4699 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

luner
Donald Secret
ISP admin

Član broj: 80
Poruke: 171
*.jagodina.beotel.yu

Sajt: www.lun.co.yu


Profil

icon select "sve rowove koji su mladji od 5 dana"01.09.2002. u 19:06 - pre 262 meseci
Do sada nisam imao potrebe za tim ali posto se sad ona javlja meni, ja se javljam vama :)):

Potrebno mi je da zadaum SQL upit koji ce iz tabele da povuce sve upite mladje od recimo 5 dana (dakle upiti koji su uneti pre 5 ili manje dana), zatim da rezultat sortiram po mladosti (mada je vec sortiran (valjda :)) i da to prikazem.

Kako se ovo izvodi (PHP/Mysql) koji se delovi izvode PHP-om a koji MySql-om (da li postoji specijalni tip kolone u MySql koji se koristi kod datuma ili...)?

Drugi pristup problemu (interesuje me i prvo i ovo (ne iskljucuju se medjusobno:))) je:

postoji forma za postavljanje vesti i polja:

vest - mesto gde se unosi tekst vesti
trajanje u danima - polje u koje se unosi koliko dana ce vest biti aktivna.

Kako se ovo izvodi?

Pozdrav!

Unapred zahvalan levo potpisani :)
*************************************
 
Odgovor na temu

Zoran Rašković
Serbia

Član broj: 95
Poruke: 1360
*.krusevac-2.tehnicom.net



+1 Profil

icon Re: select "sve rowove koji su mladji od 5 dana"01.09.2002. u 19:19 - pre 262 meseci
E ovo prvo ti je npr:
Code:

$result=mysql_query("select distinct address from visits where date > date_sub(now(), interval 5 days)", $db);
while ($myrow=mysql_fetch_row($result)) {
echo "$myrow[0]<p>";
}


date u bazi mora da bude timestamp tipa, najbolje je timestamp(14).
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.rcub.bg.ac.yu

Sajt: localhost


+5 Profil

icon Re: select "sve rowove koji su mladji od 5 dana"02.09.2002. u 05:50 - pre 262 meseci
ovo lici da je dobro - nisam radio sa interval operatorom (ili vec je vec).

ali moj je predlog malo drugaciji. po mom iskustvu, najlakse je datum u mysql bazi drzati u unixtimestamp obliku (znaci obican int, broj sekundi od 1.1.1970) koji je native i za php.

jedna od prednosti je i to sto mysql ume da konvertuje iz ovog u svoj timestamp format, i time moze sve operacije da se izvrse sa njim, kao i sa timestamp poljem (ne gubi se funkcionalnost).

druge prednosti proisticu iz cinjenica da je to obicno int polje, i da je to native php format za vreme (preuzet sa unix-a).

prvo znaci da se sve operacije mogu izvoditi kao sa obicnim int poljem oduzimanje/dodavanje da bi se dobio datum u proslosti/buducnosti, poredjenje i intervali takodje proisticu iz ovoga...

drugo znaci da sve php funkcije za rad sa datumom / vremenom rade sa ovim vremenom, a ja vise volim da neke obrade radim u php-u nego u sql-u.


sto se drugog pitanja tice, odgovor je prost, a moze i da ti zameni nacin rada za prvo pitanje.

znaci, pri upisu vesti, korisnik unosi i broj dana (recimo) koliko zeli da vest bude vidljiva. ti odma izracunash koji je to krajnji datum (danas + X dana) i to upises u bazu u valid_until polje.

a kada povlacis vesti, onda samo listash sve vesti kojima je valid_until polje vece od danasnjeg datuma.

recimo ako koristish moj predlog i koristish unixtimestamp polje, onda prvi deo kod upisa vesti u bazu ide:

Code:

// izracunava krajnji datum u sekundama
$until=time()+$dana*24*60*60;   

$sql="INSERT INTO vesti SET text='$text', valid_until=$until";

mysql_query($sql);


a kada izvlacis vesti iz baze, to radish recimo sa

Code:

$time=time();

$sql="SELECT * FROM vesti WHERE valid_until>$time";

mysql_query($sql);

...



 
Odgovor na temu

luner
Donald Secret
ISP admin

Član broj: 80
Poruke: 171
*.jagodina.beotel.yu

Sajt: www.lun.co.yu


Profil

icon Re: select "sve rowove koji su mladji od 5 dana"02.09.2002. u 16:32 - pre 262 meseci
Hvala momci, zivi bili - vrsi posao!

Pozdrav!
*************************************
 
Odgovor na temu

[es] :: PHP :: select "sve rowove koji su mladji od 5 dana"

[ Pregleda: 4699 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.