Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Aktualizacja daty w MySQL
Forum PHP.pl > Forum > PHP
mith
Witam
Jak można zrobić skrypt aby pobierał z bazy danych z kolumny „data2” podaną tam datę i dodał do niej np. 365 dni.

Dzięki z góry.
mike
A w jakim formacie jest zapisana ta data?

Zerknij w te miejsca:
mith
Format daty to yyyy-mm-dd np. 2006-05-19
em1X
  1. <?php
  2.  
  3. function addDays($data, $days)
  4. {
  5.  date_default_timezone_set('Europe/Warsaw');
  6.  
  7.  $tab = split('-', $data);
  8.  $data = mktime(0, 0, 0, $tab[1], $tab[2], $tab[0]);
  9.  $data = $data + ( $days * 3600 * 24 );
  10.  return date('d-m-Y', $data);
  11. }
  12.  
  13. print addDays('2006-05-19', 365);
  14.  
  15. ?>
ave
ale po co uzywac do tego php jak mozna z bazy wyciagnac juz powiekszoną
  1. SELECT DATA+ INTERVAL 1 YEAR
  2. FROM tabela
mith
To mam takie coś:
  1. <?php
  2. $generator_daty3=mysql_query("SELECT data2+ INTERVAL 1 YEAR FROM `tabela`");
  3.  
  4. mysql_query("UPDATE tabela SET data2= '$generator_daty3'");
  5. ?>


Ale zamiast dodać do tej daty 1 rok to on wprowadza mi taką datę: 0000-00-00
mike
Ooo, widzę że kolega nie ma pojęcia co zwraca mysql_query()
Zapraszam do poczytania dokumantacji tej funkcji: mysql_query()
mith
To jak to ma być?
Bo jak jest np. tak:
  1. <?php
  2. $generator_daty3=("SELECT data2+ INTERVAL 1 YEAR FROM `tabela`");
  3. ?>

to nie zmienia tej daty czyli nie dodaje roku.
em1X
Jak wspomnial przedmowca: sprawdz co zwraca mysql_query" title="Zobacz w manualu php" target="_manual i jak sie z tej funkcji korzysta. Wystarczy troche checi..

  1. UPDATE `tabela`
  2. SET `data2` = (
  3. SELECT data2+ INTERVAL 1 YEAR
  4. FROM `tabela`
  5. )
bendi
Cytat(em1X @ 2006-05-16 19:21:59)
Wystarczy troche checi..

...i MySQL 4.1!
L_Devil
kolego Mith, funkcja mysql_query zwraca tylko idendyfikator wyniku. Dopiero funkcja mysql_fetch_assoc" title="Zobacz w manualu php" target="_manual zwróci ci tabelę z wynikiem smile.gif


a tak naprawdę wystarczy ci

  1. UPDATE `tabela` SET `data2` = `data2`+ INTERVAL 1 YEAR


albo, krócej

  1. UPDATE `tabela` SET `data2` + INTERVAL 1 YEAR
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.