wmaraci reklam

PHP | İki tarih arası veri listeleme

12 Mesajlar 5.227 Okunma
wmaraci reklam

NovaCoding NovaCoding Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 25.06.2016
  • Yaş/Cinsiyet 44 / E
  • Meslek Yazılım Mühendisi
  • Konum Manisa
  • Ad Soyad A** Ç**
  • Mesajlar 100
  • Beğeniler 2 / 25
  • Ticaret 6, (%83)
bunu dener misin kardeşim;


function tarih($baslangic,$bitis){
$baslangic = explode("/",$baslangic);
$baslangic=$baslangic[2]."/".$baslangic[1]."/".$baslangic[0];
$bitis = explode("/",$bitis);
$bitis=$bitis[2]."/".$bitis[1]."/".$bitis[0];
$tarih1 = date_create($baslangic);
$tarih2 = date_create($bitis);
$aralik = date_diff($tarih1, $tarih2);
$fark=$aralik->format('%a');
$durum=$aralik->format('%R');
$baslangic = explode("/",$baslangic);
$baslangic=$baslangic[2]."/".$baslangic[1]."/".$baslangic[0];
$bitis = explode("/",$bitis);
$bitis=$bitis[2]."/".$bitis[1]."/".$bitis[0];
$baslangic=str_replace("/",".",$baslangic);
$bitis=str_replace("/",".",$bitis);
$komut="";
$baslangic=date('d.m.Y', strtotime($baslangic. ' - 1 days'));
$butunkod="( ";
for ($i=-1;$i < $fark;$i++){
$baslangic=date('d.m.Y', strtotime($baslangic. ' + 1 days'));
if ($i > -1){
$butunkod= $butunkod." OR ";
}
$butunkod=$butunkod."adate='".$baslangic."'";
}
$butunkod=$butunkod." )";
return $butunkod;
}
$sqltarih= tarih("05/08/2017","15/08/2017");
$sqlquery=$db->query("SELECT * FROM tabloadi WHERE ".$sqltarih)->fetch();
?>


kodu hiç test etmedim bu arada.
 

 

wmaraci
reklam

MertEren MertEren WM Aracı Kullanıcı
  • Üyelik 19.03.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek Bilgisayar Programcılığı
  • Konum İstanbul Avrupa
  • Ad Soyad M** E**
  • Mesajlar 312
  • Beğeniler 27 / 50
  • Ticaret 2, (%100)

NovaCoding adlı üyeden alıntı

bunu dener misin kardeşim;


function tarih($baslangic,$bitis){
$baslangic = explode("/",$baslangic);
$baslangic=$baslangic[2]."/".$baslangic[1]."/".$baslangic[0];
$bitis = explode("/",$bitis);
$bitis=$bitis[2]."/".$bitis[1]."/".$bitis[0];
$tarih1 = date_create($baslangic);
$tarih2 = date_create($bitis);
$aralik = date_diff($tarih1, $tarih2);
$fark=$aralik->format('%a');
$durum=$aralik->format('%R');
$baslangic = explode("/",$baslangic);
$baslangic=$baslangic[2]."/".$baslangic[1]."/".$baslangic[0];
$bitis = explode("/",$bitis);
$bitis=$bitis[2]."/".$bitis[1]."/".$bitis[0];
$baslangic=str_replace("/",".",$baslangic);
$bitis=str_replace("/",".",$bitis);
$komut="";
$baslangic=date('d.m.Y', strtotime($baslangic. ' - 1 days'));
$butunkod="( ";
for ($i=-1;$i < $fark;$i++){
$baslangic=date('d.m.Y', strtotime($baslangic. ' + 1 days'));
if ($i > -1){
$butunkod= $butunkod." OR ";
}
$butunkod=$butunkod."adate='".$baslangic."'";
}
$butunkod=$butunkod." )";
return $butunkod;
}
$sqltarih= tarih("05/08/2017","15/08/2017");
$sqlquery=$db->query("SELECT * FROM tabloadi WHERE ".$sqltarih)->fetch();
?>


kodu hiç test etmedim bu arada.


Hocam ilginiz için teşekkür ederim. Sorunu çözdüm. Sorun tam olarak şu;

Veri tipini date'e çevirdim. Fakat tekrar kayıt yaparken hata almamnın sebebi MySql'in YYYY/AA/GG şeklinde tarihi tutmasıymış. Convert edip kaydettim ve daha sonra veri çekerken iki tarih arasını BETWEEN kullanarak sorunu hallettim.

Aynı sorunu yaşayan/yaşayacak arkadaşlar için açıklama gereği duydum.

İyi forumlar.
 

 

wmaraci
Konuyu toplam 4 kişi okuyor. (0 kullanıcı ve 4 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al