Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Dodawanie dni i sprawdzanie bazy, Proszę o opinię, czy mój sposób jest dobry
szuki
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 21.09.2012

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


Witam, mam podany czas w sekundach i chciałbym go zamienić na doby, a następnie dodać do aktualnej daty.
Napisałem skrypt, który działa, ale jestem ciekaw czy nie można tego zapisać prościej.


  1. $aktualna_data = date("Y-m-d");
  2. $data_unix = strtotime($aktualna_data);
  3. $czas = $unixtime + $data_unix;
  4. $nowa_data = date("Y-m-d", $czas);


Chciałbym unikać złych nawyków. Także czy takie rozwiązanie jest dobre?

Jeszcze jedno pytanie: Przed dodaniem do bazy, chcę sprawdzić czy dany rekord występuje. Lepiej sprawdzać to przez count, czy zwykłym selectem (zakładając, że pętla wykonywać się będzie setki razy - myślę o wydajności)? Aktualnie wygląda to tak:

  1. $exist = "select id_offer from shop where id_offer='$nr_zamowienia'";
  2.  
  3. $wynik = mysql_query($exist);
  4. if(mysql_num_rows($wynik)==0)
  5. {
  6. // jeśli 0, to dodaje do bazy
  7. }
Go to the top of the page
+Quote Post
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


  1. $aktualna_data = date("Y-m-d");
  2. $data_unix = strtotime($aktualna_data);

=
  1. $data_unix = time()


2. Myślę, że jeśli w bazie może istnieć jeden lub zero rekordów, to czy sprawdzisz count'em czy w taki sposób jak podałeś, to różnicy wielkiej nie ma (bo i tak zwracany jest jeden wiersz). W przypadku większej ilości rekordów, count powinno być wydajniejsze.

Ja jednak bym wszędzie używał counta, ze względu na czytelność.

Ten post edytował peter13135 27.09.2012, 11:34:46


--------------------
:)
Go to the top of the page
+Quote Post
rocktech.pl
post
Post #3





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


Witam.

Najprościej.

  1. $sekund = 1000;
  2. $date = new DateTime('+'. $sekund .'seconds');
  3. echo $date->format('U');


--------------------
Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore

I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim


Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek
Go to the top of the page
+Quote Post
irmidjusz
post
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

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


Najprościej:
  1. date('Y-m-d', strtotime('+1000 seconds'));


--------------------
there is much to be learned
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 Aktualny czas: 22.08.2025 - 05:38