Veri Tabanındaki ayların toplamı?.
Merhaba;
Veri tabanında tarih diye bir bölüm mevcut, 2011-12-05 şeklinde bu tarih alanında bulunan ay bölümünü alıp toplam adetini nasıl çıkarabilirim.
Yani her aydan kaç adet varsa örn:10. aydan 2 tane varsan 2, 12. aydan 5 tane kayıtlı varsa 5 adetini almak isiyorum.Bir örnek verecek olursak
2011-05-11
2011-05-07 > Mayıs toplam 3 adet gibi
2011-05-23
Php
Ayak üstü aklıma gelen yöntem bu şekilde , denedim de çalışıyor. bir çok değişik yöntem var aklıma bu yöntem geldi bu örneğe bakarak geliştirebilirsin.
<?php
include("ayar.php");
$baglanti = mysql_connect($dbhost,$dbkullanici,$dbsifre) or die("Veritabanýna baðlanýlamadý.");
@mysql_select_db($db);
$sql="SELECT * FROM tarih ORDER BY NO DESC ";
$oku = @mysql_query($sql);
$satirsayisi=@mysql_num_rows($oku);
$MAYIS=0;
$HAZİRAN=0;
for ($i=0;$i<$satirsayisi;$i++)
{
$satir=@mysql_fetch_array($oku);
$dbgelengelentarih=$satir["TARIH"];
$tarihayir = $dbgelengelentarih;
$kelimeler = explode(".",$tarihayir);
$AYIBUL= $kelimeler[1];
if ($AYIBUL==05)
{
$MAYIS=$MAYIS+1;
}
ELSEif($AYIBUL==06)
{
$HAZIRAN=$HAZIRAN+1;
}
}
echo "MAYIS AYINDAN TOPLAM $MAYIS <br>";
echo "HAZİRAN AYINDAN TOPLAM $HAZIRAN <br>";
?>
Php
. yerine - kullanırsan ozaman (-) göre ayrıacak tarihin günü bulmak istersen $kelimeler[1]; yerine $kelimeler[0]; yıl içinse $kelimeler[3]; yazarak istediğin parçaladığın kısmı bulabilrsin tarih olarak 27.05.2011 biçimde örneği yaptım sen bu örneğe 2011-05-03 göre geliştirisin artık.
Peki neden +1 eklendin oraya takıldım
Php
php ve mysql ile aylara göre saydırma şöyle olacak
sonucu parçaladığında
echo "Bu ay: ". $satir["ay"] ."-". $satir["adet"]."<br>";
php
Biraz daha ayrıntılı anlatırmısın üstat tam anlayamadım.Explode ile ayrıntılı parcalamam gerekiyor mu? Ay alanını ayırmak için
Php
$dbgelengelentarih="27.05.2011"; //olarak bir tarih olsun
$tarihayir = $dbgelengelentarih;
$kelimeler = explode(".",$tarihayir);
$AYIBUL= $kelimeler[1];
bunun çıktısı
05 dir. veritabanından gelen tarihler buna göre ayrıacak 05 ise o tarih , MAYIS a +1 koyacak. 06 ya denkse hazirana +1 , temmuza denkse temmuzu +1 artıracak 12 aya kadar gidersin en sonrda toplamları yazdırırsın. olur biter. phpnin kilidi bütün kapıları açar :)))
Php
önerdiğim yöntem iki satır ile bitiyor. veriyi parçalamak için mysql_fetch_array komutunu kullanmanız yeterli. Aylar numarası ve adeti ile gösteriliyor.
Php
drekon gerçekten kısaymış çalışan kod ise aşağıda
<?php
include("ayar.php");
$baglanti = mysql_connect($dbhost,$dbkullanici,$dbsifre) or die("Veritabanýna baðlanýlamadý.");
$sec = mysql_select_db($db);
$sonuc = mysql_query("SELECT MONTH(TARIH) AS ay, COUNT(*) AS adet FROM tarih GROUP BY ay ORDER BY NO DESC");
$tarihtr = array(
'1' => 'Ocak',
'2' => 'Subat',
'3' => 'Mart',
'4' => 'Nisan',
'5' => 'Mayis',
'6' => 'Haziran',
'7' => 'Temmuz',
'8' => 'Agustos',
'9' => 'Eylul',
'10' => 'Ekim',
'11' => 'Kasim',
'12' => 'Aralik',
);
while ($satir=@mysql_fetch_array($sonuc))
{
$tr1= strtr($satir["ay"], $tarihtr);
echo "$tr1 Ayından Toplam : ". $satir["adet"]." Kayıt Var<br>";
}
?>
Bunu ayrı ayrı 12 değişkene atamak istiyroum nasıl yapabilirim