Php ile veritabanına Tarih-Zaman kayıt işlemi nasıl yapılır?

  • Konbuyu başlatan Konbuyu başlatan sfym
  • Başlangıç tarihi Başlangıç tarihi
Kodla Büyü

sfym

Seçkin Üye
Seçkin Üye
Mesajlar
387
Amacım: kullanıcının gönderdiği mesajı tarih-saat şeklinde veritabanına kaydetmek.
Php sitelerini araştırdığımda, bu konuda verilen örnekler, veritabanı değil de ekrana basılması şeklinde.

Sorularım şunlar:

  • Böyle bir bilgiyi almak için hangi komutu kullanmak en yaygın olanıdır? (date(), time(), now() )
    Bu bilgileri veritabanına kaydetmek için tablomuzdaki kolonumuzun özelliği ne olmalıdır?
    INSERT örneği verebilir misiniz?


Sorunun cevabı:

halilturkoglu hocam bilgiler için teşekkürler.

Verdiğiniz örneği, zamanı bazı kolonlarda kaydedip bazılarında boş bırakmak istediğimde kullandım.( $tarihsaat=date("Y-m-d h:i:s") şeklinde )

Her zaman tarih saati kaydetmek için ise PhpMyAdminde kolonumuzu TIMESTAMP yapıp CURRENT_TIMESTAMP özelliğini seçili hale getiriyoruz. Böylece tabloya yapılan her INSERT işleminde otomatik olarak o kolona zaman kaydı yapıyor. Mesajlaşmaların kaydında bu daha güzel oluyor.

Ör: $sonuc=mysql_query("insert into tablom values ('$kullanicimesaji','$kullaniciadi')");

Örnektede olduğu gibi tarihsaati eklememize gerek kalmıyor.Otomatik eklenmiş oluyor
 
ben bu tür bir işlem için date() kullanıyorum. Kolon türünü PhpMyAdmin üzerinde Date/Time şeklinde ayarlamanız lazım.

date() fonksiyonu parametreleri
Y : 4 haneli yıl
m: 2 haneli ay (01-12)
d : 2 haneli gün (01-31)
h : 2 haneli saat (00-23)
i : 2 haneli dakika (00-59)
s : 2 haneli saniye (00-59)

Kod:
$tarihsaat=date("Y-m-d h:i:s");
$sonuc=mysql_query("insert into tablom values ('$tarihsaat','$kullanicimesaji','$kullaniciadi')");
 
halilturkoglu hocam bilgiler için teşekkürler.

Verdiğiniz örneği, zamanı bazı kolonlarda kaydedip bazılarında boş bırakmak istediğimde kullandım.( $tarihsaat=date("Y-m-d h:i:s") şeklinde )

Her zaman tarih saati kaydetmek için ise PhpMyAdminde kolonumuzu TIMESTAMP yapıp CURRENT_TIMESTAMP özelliğini seçili hale getiriyoruz. Böylece tabloya yapılan her INSERT işleminde otomatik olarak o kolona zaman kaydı yapıyor. Mesajlaşmaların kaydında bu daha güzel oluyor.

Ör: $sonuc=mysql_query("insert into tablom values ('$kullanicimesaji','$kullaniciadi')");

Örnektede olduğu gibi tarihsaati eklememize gerek kalmıyor.Otomatik eklenmiş oluyor.
 
hocam teşekkür ederim ben yaptım ancak saat 2 saat geri bunu nasıl türkiye saati yapabilirim ücretsiz yabancı host kullanıyorum bu mümkünmü.
 
4040287' Alıntı:
hocam teşekkür ederim ben yaptım ancak saat 2 saat geri bunu nasıl türkiye saati yapabilirim ücretsiz yabancı host kullanıyorum bu mümkünmü.
php komutlarını pek bilmiyorum ama programcılık mantığı ile yaklaşırsak; zamanı okutup üzerine 2 saat ekletip sonra yansıtırsın. Zamanı sürekli kontorol eden fonksiyon date() time() herneyse okutup birdeğişkene atıp 2 saat ekleyip zaman formatında tekrar gönderilebilir diye düşünüyorum şu anda:)
 
Kod:
<?php 
$gercek_saat = (date("H") + "2");
$gercek_zaman = mktime( $gercek_saat , date("i"), date("s"), date("m"), date("d"), date("Y"));
$tarih = date("d-m-Y",$gercek_zaman);
$saat = date("H:i:s",$gercek_zaman);
print $tarih . " " . $saat;
?>
 
hocam çok sağol çok iyi oldu bu kodlarla biraz oynadım yani benim için fazla olan yerlerinden biraz kestim ama sonuc biraz değişik oldu

Kod:
$gercek_saat = (date("H") + "2");
$gercek_dakika = (date("i") - "6");
$tarih = date("d-m-Y $gercek_saat:$gercek_dakika");

hocam kodları bu şekilde düzenledim ama sonuç şöyle oldu mesela dakika "08" çıkması gerekirken "8" olarak çıkıyor bunu nasıl düzelteceğim.
 
4040287' Alıntı:
hocam çok sağol çok iyi oldu bu kodlarla biraz oynadım yani benim için fazla olan yerlerinden biraz kestim ama sonuc biraz değişik oldu

Kod:
$gercek_saat = (date("H") + "2");
$gercek_dakika = (date("i") - "6");
$tarih = date("d-m-Y $gercek_saat:$gercek_dakika");

hocam kodları bu şekilde düzenledim ama sonuç şöyle oldu mesela dakika "08" çıkması gerekirken "8" olarak çıkıyor bunu nasıl düzelteceğim.
saati 2 arttırıp dakikayı 6 azaltmışsın.
çıktı: 06-02-2010 23:12
 
böyle yaparsan 8 yerine 08 olur.
Kod:
<?php 
$gercek_saat = (date("H") + 2);
$gercek_dakika = (date("i") - 6);
$gercek_zaman = mktime( $gercek_saat , $gercek_dakika, date("s"), date("m"), date("d"), date("Y"));
$tarih = date("d-m-Y");
$saat = date("H:i:s",$gercek_zaman);
print $tarih . " " . $saat;
?>
 
hocam yalnız şöyle birşey var bende saat ve tarih ayrı değil ayrı yazmışşsında veritababnında saat ve tarih sadece tarih diye geçiyor yani sadece $tarih kısmı okunuyor onunla ilgili uğraştımda yapamadım.
 
tamam yaptım hocam.kodları aşağıdaki gibi yaptım
Kod:
<?php 
$gercek_saat = (date("H") + 2);
$gercek_dakika = (date("i") - 6);
$gercek_zaman = mktime( $gercek_saat , $gercek_dakika, date("s"), date("m"), date("d"), date("Y"));
$saat = date("H:i:s",$gercek_zaman);
$tarih = date("d-m-Y $saat");
print $tarih . " " . $saat;
?>
 
BBNET
Geri
Üst