Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przedziały czasowe [data]
JOHNY
post 9.05.2006, 19:50:24
Post #1





Grupa: Zarejestrowani
Postów: 297
Pomógł: 0
Dołączył: 17.01.2003
Skąd: Tarnów

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


Witam. Mam pewien problem bo nie wiem jak się do tego zabrać. Sytuacja przedstawia się następująco:
Chce żeby mi na stronie automatycznie się zmieniał img danego rajdu w zależności od przedziału czasowego przez który on trwa.
EX.
1 rajd image - 09.05.2006 - 15.05.2006
2 rajd image2- 20.05.2006 - 25.05.2006

Tylko chce tak stworzyć skrypt żeby wypełniał też luke między 15 a 20 img2.

Jak się za takie coś zabrać i czy wykonalne to jest questionmark.gif
Go to the top of the page
+Quote Post
tiraeth
post 9.05.2006, 19:55:36
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


Niezabardzo rozumiem a co Ci chodzi, ale sądzę, że coś takiego powinno rozwiązać Twój problem:
strtotime('May, 9 2006 1:00 am')
potem wystarczy już tylko odpowiednie instrukcje warunkowe
Go to the top of the page
+Quote Post
JOHNY
post 9.05.2006, 20:06:09
Post #3





Grupa: Zarejestrowani
Postów: 297
Pomógł: 0
Dołączył: 17.01.2003
Skąd: Tarnów

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


Innymi słowy taki warunek by mnie interesował

  1. <?php
  2. Jeżeli $dzisiaj=date('Y-m-d'); znajduje się pomiędzy 
  3. 09.05.2006 - 15.05.2006 echo "adres do .jpg";
  4. ?>


Ten post edytował JOHNY 9.05.2006, 20:06:24
Go to the top of the page
+Quote Post
Hacker
post 9.05.2006, 20:26:35
Post #4





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

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


Hmmm...
  1. <?php
  2.  
  3. $dzisiaj = date('ymd');
  4. $dzisiaj = intval($dzisiaj);
  5. $data1 = 60509;
  6. $data2 = 60515;
  7. if ($dzisiaj>$data1 && $dzisiaj<$data2)
  8. $ok = true;
  9.  
  10. ?>

możesz z tego napisać funkcję
i w pętli jej używać

Ten post edytował Hacker 9.05.2006, 20:27:29


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
Go to the top of the page
+Quote Post
maverickkk
post 9.05.2006, 20:26:54
Post #5





Grupa: Zarejestrowani
Postów: 181
Pomógł: 0
Dołączył: 12.11.2005

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


To potrzebujesz tych 2 funkcji:

Zwraca aktualny uniksowy znacznik czasu

http://pl.php.net/manual/pl/function.time.php

i

Oblicza uniksowy znacznik czasu dla podanej daty

http://pl.php.net/manual/pl/function.mktime.php


--------------------
Robie to co lubie, lubie to co Robie
Go to the top of the page
+Quote Post
Hacker
post 9.05.2006, 20:40:08
Post #6





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

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


@maverickkk tak tylko z ciekawości chciałem sprawdzić które rozwiązanie jest szybsze oto wyniki dla pętli 1000000x
Kod
Rozwiązanie Hacker-a: 8.3426868915558s
Rozwiązanie maverickkk-a: 21.465210914612s

a oto implementacja twojego roziązania (moje tak jak w poście wyżej)
  1. <?php
  2. $dzisiaj = time();
  3. $data1 = mktime(0, 0, 0 , 5, 15, 2006);
  4. $data2 = mktime(0, 0, 0 , 5, 9, 2006);
  5. if ($dzisiaj>$data1 && $dzisiaj<$data2)
  6. return true;
  7. return false;
  8. ?>


Ten post edytował Hacker 9.05.2006, 21:02:09


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
Go to the top of the page
+Quote Post
maverickkk
post 9.05.2006, 20:47:01
Post #7





Grupa: Zarejestrowani
Postów: 181
Pomógł: 0
Dołączył: 12.11.2005

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


Hacker -> fajnie takie testy się ceni thumbsupsmileyanim.gif


--------------------
Robie to co lubie, lubie to co Robie
Go to the top of the page
+Quote Post
JOHNY
post 9.05.2006, 21:13:42
Post #8





Grupa: Zarejestrowani
Postów: 297
Pomógł: 0
Dołączył: 17.01.2003
Skąd: Tarnów

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


A da się to użyć jakoś w ARRAY w jednej same początki przedziałów dat a w drugim ARRAY koncówki questionmark.gif
Go to the top of the page
+Quote Post
maverickkk
post 9.05.2006, 21:52:52
Post #9





Grupa: Zarejestrowani
Postów: 181
Pomógł: 0
Dołączył: 12.11.2005

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


No pewnie że się da. Poczytaj to co napisaliśmy, wykożystaj funkcje które podaliśmy i zacznij pisać.

Ten post edytował maverickkk 9.05.2006, 21:53:19


--------------------
Robie to co lubie, lubie to co Robie
Go to the top of the page
+Quote Post
JOHNY
post 10.05.2006, 18:03:23
Post #10





Grupa: Zarejestrowani
Postów: 297
Pomógł: 0
Dołączył: 17.01.2003
Skąd: Tarnów

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


Witam qrcze nic mi nie wychodzi czytam sobie manualka a tu nic.
Chciałem sobie ułatwić sprawe i walnąć dane do mysql ale niestety nic nie wyświetla albo o czymś zapomniałem albo o czymś jeszcze nie wiem

  1. <?php
  2. $data = date('Ymd');
  3. $query = "SELECT path FROM rallydate WHERE sdata=>".$data.
  4. AND edata=<".$data."";
  5. $row = @mysql_fetch_array($wynik);  
  6. $backlogo2 = $row['path'];
  7.  
  8. ?>


myślałem że by ścieżke do img wyciągnie a tu nic HELP

Ten post edytował JOHNY 10.05.2006, 18:03:41
Go to the top of the page
+Quote Post
Hacker
post 10.05.2006, 18:45:19
Post #11





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

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


  1. SELECT DATE_FORMAT( `kolumna_z_data`, "%Y%m%d" ) AS `kolumna`
  2. DATE_FORMAT( `kolumna_z_data`, "%Y%m%d" ) AS `kolumna2`,
  3. `path`
  4. FROM `jakaś_tabela`
  5. WHERE `kolumna`=>'.$data.' AND `kolumna2`=<'.$data.'

acha i wydajniej wszędzie zamienić Y na y (chyba, że zamieżasz dawać skryptowi takie same dane przez 100 lat biggrin.gif)

Ten post edytował Hacker 10.05.2006, 18:47:04


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
Go to the top of the page
+Quote Post
JOHNY
post 10.05.2006, 19:16:08
Post #12





Grupa: Zarejestrowani
Postów: 297
Pomógł: 0
Dołączył: 17.01.2003
Skąd: Tarnów

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


No wykona się zapytanie ale się nie wyświetli to co bym chciał
Przykład z phpmyadmin
  1. SELECT DATE_FORMAT(sdata, '%Y%m%d') AS sdata,
  2. DATE_FORMAT(edata, '%Y%m%d') AS edata,
  3. path
  4. FROM rallydate
  5. WHERE sdata>=060120 AND edata<=060120
Go to the top of the page
+Quote Post
siemakuba
post 10.05.2006, 22:33:01
Post #13





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


JOHNY, patrze na twój kod 3 posty wyżej:
Cytat
<?php
$data = date('Ymd');
$query = "SELECT path FROM rallydate WHERE sdata=>".$data."
AND edata=<".$data."";
$row = @mysql_fetch_array($wynik); 
$backlogo2 = $row['path'];
?>


i... nie widze w nim mysql_query. to błąd przy kopiowaniu kodu do posta, rajt?
bo jak nie błąd przy kopiowaniu, to już wiesz co potrzebujesz naprawić.

pozdr.
Go to the top of the page
+Quote Post
JOHNY
post 11.05.2006, 05:52:41
Post #14





Grupa: Zarejestrowani
Postów: 297
Pomógł: 0
Dołączył: 17.01.2003
Skąd: Tarnów

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


Ostateczna postać jednak musiałem troche skrypt poprawić smile.gif ale to mi wyszło dzisiaj tworząc funkcje w excelu nawet smile.gif
  1. <?php
  2.  
  3. $data = date('md');
  4. $query = "SELECT path FROM rallydate WHERE $data>=DATE_FORMAT(sdata, '%m%d') 
  5. AND $data<=DATE_FORMAT(edata, '%m%d')";
  6. $wynik = mysql_query($query);
  7. if(mysql_num_rows($wynik)==0) {
  8. $backlogo2 = "gfx/logo00.png";
  9. }
  10. while($row = mysql_fetch_array($wynik)) {
  11. $backlogo2 = $row['path'];
  12. }
  13.  
  14. ?>

Jednak pierwsza musi być data ze zmiennej a potem kolumna tablicy

Dzięki za pomoc chłopaki

Ten post edytował JOHNY 11.05.2006, 15:44:22
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 26.06.2025 - 19:47