Php Mysql İki Tarih/Zaman Arasını Sorgulama

Veritabanına eklenen veriler tablosundan eklenme_tarihi sütununda yer alan türü DATE olarak eklenmemiş, varchar türünde yer alan d.m.Y H:i formatında kayıtlı verileri listelemek için aşağıdaki örnekteki gibi BETWEEN kullanarak sorguyu kullanabilirsiniz.

SELECT * FROM veriler WHERE eklenme_tarihi BETWEEN '01.01.2018 00:00' and '01.05.2018 23:59'

CSS Baş Harfleri Büyük Yapma

Bir cümlenin yada kelimelenin otomatik olarak baş harflerini büyük yapmak için text-transform:capitalize özelliğinden faydalanırız

text-transform özelliğinin sahip olabileceği diğer değerler ise şunlardır;

none : Metin değiştirilmez. (Varsayılan değer)
capitalize : Her kelimenin ilk harfi büyük gösterilir.
uppercase : Tüm harfler büyük gösterilir.
lowercase : Tüm harfler küçük gösterilir.

Örnek Kullanım: Baş Harfleri Büyütmek İçin

<div style="text-transform:capitalize">Merhaba Kod Günlüğüm </div>

PHP Date 7 Gün Öncesini Bulup Farklı Formatlarda Yazdırma

ilk önce bugünün tarihini buluyoruz daha sonra bugünden 7 çıkarıp formatını değiştirip ekrana yazdırıyoruz. Veritabanına kayıt eklerken yada veritabanından kayıt çekerken tür olarak DATE kullandıysanız yada kullanmanız gerekiyorsa tarih formatı Y-m-d oluyor. Bunu kullanıcıya gösterirken anlamsız olduğu için formatını değiştirmek gerekiyor ben genellikle kullancıya d-m-Y yada d.m.Y formatında gösteriyorum. Veri tabanına da Y-m-d formatına çevirip yazdırıyorum. Aşağıdaki örneğin yararlı olması dileği ile:

* Bugünün tarihi 2018-04-12 baz alınarak örneklendirme yapılmıştır.

ornek.php

<?php
$bugun = date("Y-m-d"); // 2018-04-12
$cevir = strtotime('-7 days', strtotime($bugun)); 
echo $oncesi = date("Y-m-d",$cevir)."<br>"; // 2018-04-05
echo $sonhaftabaslik = date("d.m.Y",$cevir); // // 05.04.2018
?>

Görünümü:

2018-04-05
05.04.2018

En İyi WordPress Kod Gösterme Eklentisi

Yazılımla uğraşıyor ve wordpress tabanlı blog kullanıyorsanız ziyaretçilerinize göstermek isteyeceğiniz bir takım kodlar olabilir, bu kodları göstermek için onlarca eklenti yapmışlar bunların hangisi en iyidir açıkcası bunu bilmiyorum çünkü herkesin en iyi kavramı biraz farklı olabiliyor. Bazıları aşırı gösterişli janjanlı renkli eklentiler sevebilir ama bazıları da sade seviyor. Ben gibi. Siz de benim gibi sade olarak kod göstermek isterseniz WP-GeSHi-Highlight tam size göre nasıl göründüğüyle alakalı blogumda mevcut yazılar içinde kod geçen çeşitli yazıları inceleyebilirsiniz bence işini iyi yapıyor ne bir eksik ne bir fazla.

Eklentiyi yükledikten sonra editöre herhangi bir buton gelmiyor bunu da belirteyim dil seçenekleri için pre tagını kullanmanız gerekiyor. Eklenti yapımcısının söylediğine göre 256 farklı dil için tanımlama bulunuyor.

Örnek Pre Tagı Kullanımı

<pre lang = "javascript">
    ... kod ...
</ Pre>

Okumaya devam et En İyi WordPress Kod Gösterme Eklentisi

Projelerde Kullandığım Veri Tabanı Bağlantı Dosyası baglanti.php

Veri ekleme çıkarma listeleme güncelleme vb. veritabanı işleri için öncelikle bir veritabanına bağlanmamız lazım değil mi : )  benim de mutlaka kullandığım veri tabanı bağlantı kodlarım genellikle baglanti.php içinde yer alıyor:

$db_connect=mysql_connect("localhost","kullanici_adi","parola") or die ('hata: '.mysql_error());
$db_select_1=mysql_select_db("veritabani_adi",$db_connect);
 
 
if (!$db_select_1)
{
	die ('hata:1'.mysql_error());
}
 
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");

***Veritabanıyla alakalı Türkçe karakter hataları almamak için en alta türkçe karakter set tanımlamaları yaptım.

PHP’de Türkçe Karakter Hatası Almadan Yazı Kısaltma Fonksiyonu

Bir yazıyı yada bir metni Türkçe karakter hatası almadan kısaltmak, kaç karakter görüneceğini belirtmek için kullandığım fonksiyon;

 
	function kisalt($kelime, $str = 10)
	{
		if (strlen($kelime) > $str)
		{
			if (function_exists("mb_substr")) $kelime = mb_substr($kelime, 0, $str, "UTF-8").'..';
			else $kelime = substr($kelime, 0, $str).'..';
		}
		return $kelime;
	}
 
	// Kullanımı
	$uzunYazi = "Kod Günlüğüme Eklediğim En Yararlı Fonksiyonlardan bir tanesi bu";
	echo kisalt($uzunYazi, 20);

Fonksiyon yazarı Erbilen‘e Teşekkürler.

PHP Mysql Bu Ay ve Geçen Ayın Verilerini Listelemek

1. Yol Mysql’de Bu ayın verilerini sorgulamak için kullanılan yapı:

SELECT* FROM tablo_adi where eklenme_tarihi >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH);

Bunu kullanarak direk son 1 aylık verileri listeleyebilirsiniz. Bu sorgunun sağlıklı çalışabilmesi için eklenme_tarihi sütununun date yapısında oluşturulmuş olması gerekmektedir.

2. Yol PHP kullanarak gelen verilerden bu ayın verilerini filtrelemek

Ben bunun dışında farklı bir yol kullanıyorum öncelikle mantığını anlatmak gerekirse, tablo_adi ismindeki tablodan tüm verileri çekiyorum, foreach içinde yazdırırken date(“m.Y”) ile bu ay yılı $buayy isimli değişkende tutup, if kullanarak gelen verinin ay günü yılı ($buayg) ile bu ayın ay günü yılı ($buayy) eşit mi değil mi diye bakıp eşitse sırala diyorum.  Örneğin:

<?php
$sorgu_cumlesi="SELECT * FROM tablo_adi";
$sorgu = mysql_query($sorgu_cumlesi);
while($satir=mysql_fetch_array($sorgu)) { $veriler[$satir['id']]=$satir; }
?>
<?php $sirano=1; ?>
<?php foreach ($veriler as $buay) : ?>
<?php $buayg = $buay['eklenme_tarihi']; $buayy = date("m.Y", strtotime($buayg)); $buaybu = date("m.Y"); ?>
<?php if ($buayy==$buaybu) { ?>
<tr>
<td>
<?php $say = $sirano++; echo $say; ?>
</td>
<td>
<?php echo date('d.m.Y', strtotime($buayg)); ?>
</td>
<td>
<?php echo $buay['aciklama']; ?>
</td>
</tr>
<?php } ?>
<?php endforeach; ?>

** Bu yapıda eklenme_tarihi isimli tablonun yapısının date yada d-m-Y formatında olması gerekmektedir.

Geçen Ayın Verilerini Listelemek için de benzer bir yapı kullanarak $gecenayy değişkeninde geçen ay yılı tutup, kayıtlardan geçen ay yılın verileriyle uyuşanları listelemek için kod örneğim:

<?php
$sorgu_cumlesi="SELECT * FROM tablo_adi";
$sorgu = mysql_query($sorgu_cumlesi);
while($satir=mysql_fetch_array($sorgu)) { $veriler[$satir['id']]=$satir; }
?> 
<?php $sirano=1; ?>
<?php foreach ($veriler as $buay) : ?>
<?php
$buayg = $buay['eklenme_tarihi']; $buayy = date("m.Y", strtotime($buayg));$gecenayy = strtotime("last Month");$gecenay = date("m.Y", $gecenayy);
?>
<?php if ($buayy==$gecenay) { ?>
<tr>
<td>
<?php $say = $sirano++; echo $say; ?>
</td>
<td>
<?php echo date('d.m.Y', strtotime($buayg)); ?>
</td>
<td >
<?php echo $buay['aciklama']; ?>
</td>
</tr>

PHP Mysql İle Bu Haftanın ve Geçen Haftanın Kayıtlarını Listelemek

Verileri php ve sql sorgularıyla anlamlı bir şekilde listelemek hepimizin ortak sorunu, yaparken çok araştırdığım konulardan bir tanesi de bu hafta pazartesiden pazara kadar olan kayıtları ve geçen pazartesiden geçen pazara olan kayıtları ayrı ayrı listelemekti, bunun için çeşitli çözüm sunan blogcu arkadaşların çözümlerini denedim ama sonuç alamadım çünkü herkes şu kodları vermiş

select * from tablo_adi where WHERE YEARWEEK(eklenme_tarihi) = YEARWEEK(CURRENT_DATE)
SELECT * FROM tablo_adi WHERE WEEK(eklenme_tarihi) = WEEK(CURDATE());

Bu kodları denediğinizde haftanın birinci günü olarak pazar geliyor ama günümüz Türkiyesinde bildiğiniz üzere haftanın birinci günü PAZARTESİ 🙂

Ben bu pazartesiden pazara kadar olan kayıtları listelemek için şunu kullanıyorum:

<?php 
$pazartesi=date("Y-m-d", strtotime("Monday", strtotime(date("Y-m-d"))));
$pazar=date("Y-m-d", strtotime("Sunday", strtotime(date("Y-m-d"))));
 
$sorgu_cumlesi="SELECT * FROM tablo_adi WHERE  (eklenme_tarihi BETWEEN '{$pazartesi}' AND '{$pazar}') ORDER BY id asc";
?>

**NOT: $pazartesi değişkeni içinde yer alan Monday=Pazartesi, eğer siz pazartesi günündeyseniz sıkıntısız çalışıyor fakat ertesi gün salı olduğunda yada diğer günlere girdiğinizde ekrana baktığınızda bu kod size gelecek haftanın pazartesi gününü verecektir.
$pazar değişkeni içinde yer alan Sunday=Pazar ifadesi de aynı şekilde gelecek haftanın pazar gününü verecektir. Geçmiş pazartesi yada pazar gününe gitmek için Last Monday yada Last Sunday ifadelerini strtotime içinde kullanmanız gerekiyor.

((Eğer bu işinizi görmeyecekse PHP Date ile 7 Gün Öncesini Bulup Farklı Formatlarda Yazdırma yazısına da bakabilirsiniz))

** Sorgu içinde geçen eklenme_tarihi ,  tablo_adi isimli tablonuzdaki verilerin kayıt tarihlerinin tutulduğu sütunun adıdır. Bu sütunun kayıt türü DATE olmalıdır.

Sorguladığımız verileri Ekrana Listelemek için while döngüsü ile sorgulananları getirip foreach ile yazdırıyorum kodların son hali şu şekilde;

<?php
$pazartesi=date("Y-m-d", strtotime("Monday", strtotime(date("Y-m-d"))));
$pazar=date("Y-m-d", strtotime("Sunday", strtotime(date("Y-m-d"))));
 
$sorgu_cumlesi="SELECT * FROM tablo_adi WHERE (eklenme_tarihi BETWEEN '{$pazartesi}' AND '{$pazar}') ORDER BY id asc";
$sorgug = mysql_query($sorgu_cumlesi);
while($satir=mysql_fetch_array($sorgug)) {
$getirilen[$satir['id']]=$satir;
}
?>
 
<table>
<thead>
<tr>
<th>#</th>
<th>Tarih</th>
<th>Açıklama</th>
</tr>
</thead>
<tbody>
<?php $sirano=1; ?>
<?php foreach ($getirilen as $buhafta) : ?>
<tr>
<td>
<?php $say = $sirano++; echo $say; ?>
</td>
<td>
<?php echo date('d.m.Y', strtotime($buhafta['eklenme_tarihi'])); ?>
</td>
<td>
<?php echo $buhafta['aciklama']; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>

Şimdi Sıra Geçen Haftanın Kayıtlarını Getirmekte (Yani Geçen Hafta Pazartesiden Geçen Hafta Pazara kadar olanlar) onun için de kodlarda sadece Last deyimini kullandım şu şekilde;

<?php
$oncekipazartesi=date("Y-m-d", strtotime("Last Monday", strtotime(date("Y-m-d"))));
$oncekipazar=date("Y-m-d", strtotime("Last Sunday", strtotime(date("Y-m-d"))));
 
$sorgu_cumlesi="SELECT * FROM tablo_adi WHERE (eklenme_tarihi BETWEEN '{$oncekipazartesi}' AND '{$oncekipazar}') ORDER BY id asc";
$sorgug = mysql_query($sorgu_cumlesi);
while($satir=mysql_fetch_array($sorgug)) {
$getirilen[$satir['id']]=$satir;
}
?>
 
<table>
<thead>
<tr>
<th>#</th>
<th>Tarih</th>
<th>Açıklama</th>
</tr>
</thead>
<tbody>
<?php $sirano=1; ?>
<?php foreach ($getirilen as $oncekihafta) : ?>
<tr>
<td>
<?php $say = $sirano++; echo $say; ?>
</td>
<td>
<?php echo date('d.m.Y', strtotime($oncekihafta['eklenme_tarihi'])); ?>
</td>
<td>
<?php echo $oncekihafta['aciklama']; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>

CSS İki Yana Yaslama Nasıl Yapılır?

Word’de yazı yazarken kullandığımız iki yana yaslama özelliğinin kullanımını buraya not etmek istiyorum. Eğer html içinde tanımlı metin isimli bir clasımız olduğunu varsayarsak, css dosyasında şu şekilde bir tanımlama yapmamız gerekir;

.metin {text-align:justify;}  /*İki Yana Yasla*/

Eğer css dosyası kullanmadan direk html dosyasında div içinde kullanmak istiyorsak kullanım şu şekilde olacaktır:

<div style="text-align:justify">İki Yana Yaslanacak Metin</div>