Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] korzystanie w typu DATE, Gdy jakas data to w drugim rekordzie pojawia sie napis - da sie tak?
InosU31
post
Post #1





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


Witam

Utworzylem sobie w bazie mysql tabelke z kolumna "data" ktora bedzie typu DATE i druga "napis" typu VARCHAR. Ogolnie chce zrobic tak ze jezeli w rekordzie "data" bedzie dzisiejsza data to w rekordzie "napis" ma sie pojawic jakis napis a najlepiej jakby sie zmienial np: z Aktywny na Nieaktywny. Pytanie moje jest takie czy da sie wogle to zrobic w mysql'u (IMG:style_emoticons/default/questionmark.gif) A jesli sie da to moze jakies podpowiedzi? Zrobilbym to w php ale strona sama sie nie przeladuje a to chodzi o to by o 24:00 dnia dzisiejszego zmienil sie ten napis ale sam.



z gory dzieki za podpowiedzi;-)



Pozdrawiam

Go to the top of the page
+Quote Post
Andaramuxo
post
Post #2





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 18.03.2009

Ostrzeżenie: (10%)
X----


Cyklicznie? CRON?
Go to the top of the page
+Quote Post
jmail
post
Post #3





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

Ostrzeżenie: (0%)
-----


zamień tą kolumnę date na TimeStamp i aktualizując użyj funkcji now()

teraz jeżeli wykonujesz jakiś update zrób

  1.  
  2. UPDATE
  3. tabela
  4. SET
  5. napis = 'aktywny';
  6.  
  7. UPDATE
  8. tabela
  9. SET
  10. napis = 'nieaktywny'
  11. WHERE
  12. DATE_FORMAT(DATA, '%Y-%m-%d') <> DATE_FORMAT(now(), '%Y-%m-%d');
  13.  



//edycja

adaramuxo - a poco CRON? nie wystarczy tutaj triger onUpdate albo onInsert?

Ten post edytował jmail 17.08.2009, 22:53:50
Go to the top of the page
+Quote Post
InosU31
post
Post #4





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


Dzieki za odpowiedzi:-) No cron raczej odpada - przynajmiej narazie  - za duzo tego wszystkiego :php, mysql, css, pozniej javascrpt dojdzie,



Wszystko fajnie tylko mi chodzi o to by to sie automatycznie robilo;-)



A nie mozna zrobic czegos takiego w mysql'u :

1kolumna : jakas_data

2kolumna: napis

3.kolumna: aktualna data



jezeli kolumna1 = kolumna3

wyswietl napis



jezeli daloby sie ustawic 3 kolumne tak aby pokazywala aktualna date to w rekordzie gdzie jest napis moze daloby sie zrobic jakas formulke na styl exela. kiedys zrobilem cos takiego ze mi dodawalo dwa rekordy do siebie i w trzecim dawalo wynik a w exelu tak samo tylko ze do tego w kolejnym rekordzie pisalo minus lub plus w zaleznosci czy wynik byl minusowy czy dodatni.

hmm teraz tak sobie mysle ze rekord zawierajacy akualna date musialby sie automatycznie aukualizowac... jest to wogule mozliwe?? tzn. bez wykonywania jakich kolwiek operacji w bazie? czy trzabyloby updatowac ten rekord z aktualna data?



pozdrawiam

Go to the top of the page
+Quote Post
Andaramuxo
post
Post #5





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 18.03.2009

Ostrzeżenie: (10%)
X----


w ogóle*
Żeby aktualizować aktualną datę, trzeba wykonać skrypt, automatycznie się nie da.
Go to the top of the page
+Quote Post
CyberDuck_
post
Post #6





Grupa: Zarejestrowani
Postów: 135
Pomógł: 15
Dołączył: 17.08.2009

Ostrzeżenie: (0%)
-----


Da sie, ale tak jak kolega podpowiedzial musialbys miec
dostep do shela i z cron moglbys odpalac skrypt php, ktory
te czynnosci wykona. Niestety mamlo ktory admin pozwala
na dostep do shell'a .

Wykonaj ten skrypt, ktory Ci bedzie zmieniac wpisy zawsze
na samym poczatku strony w jakims stale ladowanym
elemncie o ile wogole masz zrobiony podzial strony na moduly.

Zapisuj sobie daty w postaci znacznikow czasu.
To jest bardzo wygodne i zwykle wymaga mniej obliczen.
  1. $timestamp = time();

Znaczniki czasu mozesz w wygodny sposob sobie przeksztalcac
w dowolna strone np na date i czas :
  1. echo date("d.m.Y H:i", $timestamp);


Zeby sie dowiedziec czy juz minelo od zapamietanej daty 24
godziny to nic prostszego ...
  1. if ($zapamietanadata < (time() - 86400)) { // 86400 sek - 24 godziny
  2.  
  3. }


No i tego typu dane zapisuj w polach typu INT. W przyszlosci
to ulatwi np sortowanie. Wykonanie takiego skryptu o ktorym
piszesz po takich zmianach bedzie drobnostka.
Go to the top of the page
+Quote Post
dadexix
post
Post #7





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

Ostrzeżenie: (0%)
-----


cPanel, DA udostepnia corn, a takze sa darmowe corny[na innych serwerach;)

Ten post edytował dadexix 18.08.2009, 00:09:07
Go to the top of the page
+Quote Post
InosU31
post
Post #8





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


dzieki cos pokombinuje;-)



pozdrawiam:-)



Andaramuxo - nie musisz mnie poprawiac jak zauwazyles nie pisze polskich znakow (ogonkow) i w ogole to czesto robie literowki wiec Twoje poprawki sa zbedne;-) A to nie jest forum gramatyczne/ortograficzne tylko informatyczne ;-)



Ten post edytował InosU31 18.08.2009, 00:17:53
Go to the top of the page
+Quote Post
jmail
post
Post #9





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

Ostrzeżenie: (0%)
-----


da się (IMG:style_emoticons/default/biggrin.gif) w SQL'u

musisz utworzyć widok, który Ci te dane sparsuje jak chcesz (IMG:style_emoticons/default/winksmiley.jpg)

  1. CREATE VIEW
  2. tabela_view
  3. AS
  4. SELECT
  5. DATA
  6. ,case when
  7. DATE_FORMAT(DATA, '%Y-%m-%d') <> DATE_FORMAT(CURRENT_TIMESTAMP, '%Y-%m-%d') then
  8. 'niekatywny'
  9. else
  10. 'aktywny'
  11. end AS napis
  12. FROM
  13. tabela;


i w kodzie wsytąpienia tabela zamienić na tabel_view i masz to co chcesz. (IMG:style_emoticons/default/winksmiley.jpg)

oczywiscie przy tworzeniu widoku, trzeba pamiętać, żeby resztę kolumn z tabeli przepisać
Go to the top of the page
+Quote Post
InosU31
post
Post #10





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


dzieki jmail:-)
Go to the top of the page
+Quote Post
jmail
post
Post #11





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

Ostrzeżenie: (0%)
-----


aha i widoki możesz updateować a dane trafią do tabeli pod widokiem jeżeli jedt index (IMG:style_emoticons/default/winksmiley.jpg) więc niczym się nie przejmuj tylko rób widok (IMG:style_emoticons/default/smile.gif) i operuj nim jak normalną tabelą
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 06:46