• 29-06-2013, 21:51:38
    #1
    Merhaba arkadaslar;
    MySQL'de veri çekerken takıldığım bir nokta oldu.
    malzeme adlı tablomda toplam 6 sütun var:
    ID
    Isim
    Tarih
    Fiyat
    Zaman1
    Zaman2
    şeklinde.
    Zaman1 ve Zaman 2 sütununa date picker ile tarihleri giriyorum.
    Örneğin Zaman1 : 01/06/2013 ve Zaman2 : 30/06/2013.
    Şimdi benim istediğim bu iki sütun arasında arama yapmak.Sadece bu iki sütun arasındaki tarihlerin verileri listelensin.
    Bunu nasıl yapabilirim?
    Şimdiden ilgilenen arkadaşlara çok teşekkürler.
    İyi çalışmalar.
  • 29-06-2013, 23:46:52
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    arkadaşım öncelikle sql de tarih sütunlarını date olarak girmelisin. Daha sonra istediğin gibi sorgu yapabilirsin. misal:
    select * from tablo where tarih1 > "2013-06-26"
    select * from tablo where tarih2 < "2013-06-26"
    select * from tablo where tarih1 > "2013-06-26" and tarih2 < "2013-10-10"
    select * from tablo where tarih1 between "2013-06-26" and "2013-10-26"
    vs.vs.
  • 01-07-2013, 11:06:55
    #3
    Öncelikle cevabınız için çok teşekkürler.
    Ama malesef sonuç alamadım
    Boş sonuç döndürüyor.
    Nerde hata yapıyorum bilmiyorum.
    Kodlarım aşağıda :
    <html>
    
    <head>
    <meta http-equiv="Content-Language" content="tr">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
    <link rel="stylesheet" type="text/css" href="images/style.css" />
    </head>
    					<?php
    					$arama = $_POST['arama'];
    if(empty($arama)){
    echo("<center><b>Arama Kutusunu Boş Bıraktınız. Lütfen Geri Dönüp Doldurunuz.</b></center>");
    }else{
    include "database.php";
    $sayfa = $_GET['sayfa'] ? $_GET['sayfa'] : 0;  
    $sayfabasi=30;  
    $sorgu=mysql_query("SELECT * FROM 'depo' WHERE 'zaman' BETWEEN '{$zaman1}' AND '{$zaman2}' (
    `id` LIKE '%$arama%'
    OR `zaman` LIKE '%$arama%'
    )"); 
    $toplam=mysql_num_rows($sorgu);
    $kacsayfa=ceil($toplam/$sayfabasi);
    $basla=$sayfa*$sayfabasi; 
    
    echo"<table border=\"1\" width=\"870\" cellspacing=\"0\" cellpadding=\"0\" height=\"63\">";
    echo"<tr><td width=\"20\" height=\"30\" align=\"center\">";
    echo"<font face=\"Agency FB\">No</font></td><td width=\"120\" height=\"30\" align=\"center\"><font face=\"Agency FB\">Resim</font></td><td width=\"150\" height=\"30\" align=\"center\"><font face=\"Agency FB\">Malzeme Adı</font></td>";
    echo"<td width=\"70\" height=\"30\" align=\"center\"><font face=\"Agency FB\">Malzeme Kodu</font></td><td width=\"100\" height=\"30\" align=\"center\">";
    echo"<font face=\"Agency FB\">Kategori</font></td><td width=\"80\" height=\"30\" align=\"center\"><font face=\"Agency FB\">Stok Miktarı</font></td>";
    echo"<td width=\"100\" height=\"30\" align=\"center\"><font face=\"Agency FB\">Kayıt'ı Yapan Personel</font></td>";
    echo"<td width=\"50\" height=\"30\" align=\"center\"><font face=\"Agency FB\">Birim Fiyat</font></td><td width=\"50\" height=\"30\" align=\"center\"><font face=\"Agency FB\">Kdv</font></td><td width=\"50\" height=\"30\" align=\"center\"><font face=\"Agency FB\">Toplam Fiyat</font></td><td width=\"80\" height=\"30\" align=\"center\"><font face=\"Agency FB\">Seçenekler</font></td></tr>";
    
    $bilgi = mysql_query("SELECT * FROM 'depo' WHERE 'zaman' BETWEEN '{$zaman1}' AND '{$zaman2}' (
    `id` LIKE '%$arama%'
    OR `zaman` LIKE '%$arama%'
    ) limit $basla, $sayfabasi");	
    if($bilgi)
    	{	
    	while($satir = mysql_fetch_array($bilgi))
    	{
    	$mesaj = $satir['mesaj'];
    echo"<tr><td width=\"20\" height=\"30\">$satir[id]</td>";
    echo"<td width=\"120\" height=\"30\"><a href=\"$satir[resim]\" target=\"_blank\"><img src=\"$satir[resim]\" width=\"75px\" border=\"0\"></a></td>";
    echo"<td width=\"150\" height=\"30\">$satir[urunadi]</td>";
    echo"<td width=\"70\" height=\"30\">$satir[malzemekodu]</td><td width=\"100\" height=\"30\">$satir[urunkategorisi]</td>";
    echo"<td width=\"80\" height=\"30\">$satir[miktar] $satir[birim]</td><td width=\"100\" height=\"30\">$satir[personel]</td>";
    echo"<td width=\"50\" height=\"30\">$satir[birimfiyat] $satir[fiyatbirimi]</td>";
    echo"<td width=\"50\" height=\"30\">$satir[kdv] $satir[fiyatbirimi]</td>";
    echo"<td width=\"50\" height=\"30\">$satir[toplamfiyat] $satir[fiyatbirimi]</td>";
    echo"<td width=\"80\" height=\"30\"><a href=\"guncelle.php?id=$satir[id]\"><img src=\"images/edit.png\" border=\"0\" alt=\"Düzenle\"></a>&nbsp;<a href=\"sil.php?id=$satir[id]\"><img src=\"images/sil.png\" border=\"0\" alt=\"Sil\"></a>&nbsp;<a href=\"stok-azalt-tamamla.php?id=$satir[id]\"><img src=\"images/stok-.png\" border=\"0\" alt=\"Stok Azalt\"></a>&nbsp;<a href=\"stok-yukselt-tamamla.php?id=$satir[id]\"><img src=\"images/stok+.png\" border=\"0\" alt=\"Stok Yükselt\"></a></td></tr>";
    	}
    
    
    }
    echo"</table>";
    for ($i=0;$i<$kacsayfa;$i++) { 
    if ($sayfa == $i) 
    echo "[<b>".$i."</b>]";
    else
    echo "<a href=arama.php?sayfa=".$i.">".$i."</a>";
        } 
    	}
    echo"</center>";
    ?>
    				
    				<tr>
    					<td width="120" align="center">
    					<form name="arama" id="arama" action="arama1.php" method="post">
    					Tarih 1:<input name="zaman" type="text" size="15" />
    					Tarih 2:<input name="zaman" type="text" size="15" />
    					<input name="button" class="arama" type="submit" value="">
    					</form>					
    					</td>
    				</tr>
    				
    <?php
    if (isset($_REQUEST["kullanici"])) {
    include("database.php");
    $sql = ("select * from uye");
    }
    else {
    header ("Location: uyari.html");
    }
    ?>
    Bir yardım lütfen
  • 01-07-2013, 13:07:46
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    İpucu: MySQL'de tarihleri UNIX Timestamp olarak tutarsan zaman aralıklarıyla işlem yaparken daha rahat olursun.
  • 01-07-2013, 13:23:13
    #5
    hocam sorun şu sizin veritabanına kaydettiğiniz tarih formatı olan "gun/ay/yil" ın veritabanı yapısının gözünde varchar dır. ilk önce tarih formatınızı "bence, benim tavsiyeme göre" timestamp a çevirmeniz. yani tarih sütünunuzun formatını timestamp a çevirip, daha sonra @acayip arkadaşımızın verdiği örnekteki gibi kodunuzu değiştirmeniz gerekir.

    bu haliyle yaparsanız yanlış sonuç dönecektir.

    mesela burada da böyle bir şey konuşulmuştu : https://www.r10.net/php/927673-tarih-...tutulmali.html
    en son arkadaşımız timestamp kullanmaya karar vermişti, farkını anlayınca.
  • 02-07-2013, 09:20:18
    #6
    Olmuyor arkadaslar boş sonuç döndürüyor.Sorun ne anlamadım
  • 02-07-2013, 10:41:01
    #7
    sorun sizin tarihi ilk kaydederken timestamp kullanmamanız.
  • 02-07-2013, 11:00:14
    #8
    cleaner80 adlı üyeden alıntı: mesajı görüntüle
    sorun sizin tarihi ilk kaydederken timestamp kullanmamanız.
    Hocam çok teşekkürler cevap için.
    İlk fırsatta tekrar deneyip sonucu buraya yazacağım.
    İyi çalışmalar.
  • 02-07-2013, 13:44:17
    #9
    timstamp olayını karıştırmışım. mktime olayını kullanabilirsin.

    Benim bi scriptimde kullandığım iki tarih arası veri çekme işlemi alttaki gibi

    $zamanpulu = mktime(0, 0, 0,$basay,$basg,$basyil);
    $zamanpulu2 = mktime(0, 0, 0,$bitay,$bitg,$bityil);
    $sqlgid =mysql_query("SELECT * FROM yapgider  WHERE tarih >='$zamanpulu' AND tarih <='$zamanpulu2' ");
    tarih alanı varchar(11) olarak kayıtlı. Alttaki işlemde tarihi kaydederkenki kullandığım kodlar aşağıdaki gibi. ben tarih alanındaki herhangi iki zaman arasındaki kodları yukarıdaki gibi çekebiliyorum.
    //Bugünün tarihini aldık
    $tarih = date("d-m-Y");
    //Tarihi gün ay ve yıl olarak ayırdık
    $tarih = explode('-',$tarih);
    //Gün ay ve Yılı Değişkenlere Atadık
    $gun = $tarih[0];
    $ay = $tarih[1];
    $yil = $tarih[2];
    //Değişkenleri Zaman Puluna çevirdik
    $zamanpulu = mktime (0, 0, 0,$ay,$gun,$yil);
    
    //İş Kaydetme Sorgusu
    $is_giris = mysql_query("INSERT INTO yapgider VALUES ('','$gider_id','$aciklama','$tutar ','$zamanpulu')");
    Daha iyi bilenler yanlış varsa düzeltebilirler.