Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Czas aukcji
ToDi69
post 8.10.2010, 15:05:04
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.10.2010

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


Witam,
Otóż jak dotąd szło mi dobrze i bez większych problemów winksmiley.jpg
Problem polega na tym iż nie wiem od czego zacząć tworząc odliczanie czasu do końca aukcji np. takie jak na allegro.

Mam gotowy formularz, a w nim select

  1. <select name="czas">
  2. <option>3 dni</option>
  3. <option>5 dni</option>
  4. ...


Podsunie ktoś jakieś rozwiązanie ? Ofc, z udziałem bazy danych. Tworzę panel gracza, więc nie szukam żadnego skryptu aukcji takiego jak np. WebAuction.

Ten post edytował ToDi69 8.10.2010, 15:07:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Ulysess
post 8.10.2010, 15:15:34
Post #2





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


hmm rozumiem że przy wystawianiu 'przedmiotu' dajesz na ile dni questionmark.gif robisz time() + ($ilosc_dni*86400) - tutaj masz date zakonczenia aukcji
wyswietlasz aukcje od najmneijszej daty (czyli najwcześniej się kończy) przy zakupie jeśli kupujący spełnia wszystkie warunki możesz zrobić że jeśli jest mniej niż 3 min do zakończenia aukcji dodaje się x min do tej daty tak aby ktoś jeszcze mógł złożyć ofertę
Go to the top of the page
+Quote Post
ToDi69
post 8.10.2010, 15:43:50
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.10.2010

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


Tak, ktoś kto wystawia wybiera na ile dni.

  1. <select name="czas">
  2. <option value="doba">24 godziny</option>
  3. <option value="five">5 dni</option>


I chodzi mi o to jak to zrobić od strony technicznej ; p
I pytanko, jaką strukturę powinno mieć pole do którego dodaje $czas, timestamp ?

Na razie to wygląda tak:
  1. if ($_POST['czas'] == doba) {
  2. $czas = time() + (1*86400);
  3.  
  4. }
  5.  
  6. if ($_POST['czas'] == five) {
  7. $czas = time() + (5*86400);
  8.  
  9. }
  10.  
  11. $obaz = $_POST['obraz'];
  12. $nazwa = $_POST['nazwa'];
  13. $cena = $_POST['cena'];
  14.  
  15. if ($obaz && $nazwa && $cena && $doba) {
  16. $wynik = mysql_query("INSERT INTO $tabela VALUES('', '{$_SESSION['login']}', '', '$obraz', '$nazwa', '$cena', '$czas')");
  17. }


I jak ma wyglądać wyświetlanie czasu który pozostał do końca aukcji ?

now() - wartość pola gdzie jest $czas?

Ten post edytował ToDi69 8.10.2010, 15:51:53
Go to the top of the page
+Quote Post
Ulysess
post 8.10.2010, 16:02:24
Post #4





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


ja bym ustawił pole typu INT na 11 znaków ,
tak jak pisałem time()...
funkcja time() to aktualny czas w formacie unix czyli wyrażonych w sekundach od 1 stycznia 1970 r. pobierasz taką date którą masz np w zmiennej $czas_aukcji i robisz np
  1. echo date(''d-m-Y | H:i:s',$czas_aukcji');

wynikiem tego pojawi się data która była w bazie w formacie dzień-miesiąc-rrrr | godzina:minuta:sekunda.

wszystko masz już wyjaśnione a jeśli chodzi o napisanie to już sam musisz, nikt za ciebie pisać nie będzie :]
Go to the top of the page
+Quote Post
ToDi69
post 8.10.2010, 16:38:23
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.10.2010

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


Dobra dzięki, ale nie odpowiedziałeś mi na to jak zrobić by wyświetlało ile minut/godzin/dni zostało do końca.

Dzisiaj: 08-10-2010 | 17:34:32
Zakończenie aukcji: 09-10-2010 | 17:34:32


Do końca aukcji pozostało: 1dzień (gdy będzie mniej niż jeden dzień ma wyświetlać ilość godzin)

Gdy daje
  1. echo date('H:i:s | d-m-Y',$czas_aukcji - time());


wynik jest taki:
Cytat
00:31:28 | 02-01-1970


$czas_auckcji = to ta wartość pobrana z bazy np. 1286637647



Ten post edytował ToDi69 8.10.2010, 16:51:41
Go to the top of the page
+Quote Post
Ulysess
post 8.10.2010, 16:49:22
Post #6





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


wiesz to już matematycznie musisz zrobić jakoś na pewno data zakończenia aukcji - aktualny czas i dzieki sekundom które wyjdą w wyniku robisz instrukcje warunkowe
Go to the top of the page
+Quote Post
ToDi69
post 8.10.2010, 16:54:39
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.10.2010

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


No ta, ale zobacz wyżej co wychodzi ; /
Go to the top of the page
+Quote Post
kefirek
post 8.10.2010, 17:04:43
Post #8





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


  1. $czas = time()- 1281637647;
  2.  
  3.  
  4. $iD=sprintf("%2d",floor($czas/(60*60*24)));
  5. $iH=sprintf("%02d",floor((($czas%604800)%86400)/3600));
  6. $iM=sprintf("%02d",floor(((($czas%604800)%86400)%3600)/60));
  7. $iS=sprintf("%02d",floor((((($czas%604800)%86400)%3600)%60)));
  8.  
  9.  
  10. echo 'Dni '.$iD.' '.$iH.':'.$iM.':'.$iS;
Go to the top of the page
+Quote Post
Ulysess
post 8.10.2010, 17:05:56
Post #9





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


omg..

  1. $zapytanie['r'] = "SELECT `czas` FROM `tabela`";
  2. $wykonano_zapytanie['r'] = mysql_query($zapytanie['r']) or die(mysql_error());
  3. $dane = mysql_fetch_assoc($wykonano_zapytanie['r']);


wtedy
  1. $czas = $dane['czas'] - time();
  2. echo date('H:i:s | d-m-Y',$czas);
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: 14.08.2025 - 06:19