+ Yanıtla
Toplam 3 sonuçtan 1 ile 3 arası olanlar

Konu Başlığı: veri seçim ve limitli gösterimde hata

  1. #1

    veri seçim ve limitli gösterimde hata

    arkadaşlar emlakçı sitesi yapıyorum. fakat arama bölümünde aşamadığım bir problemim var.
    örneğin izmirde kiralık olan evleri aramak istiyorum. (bu bölümü yaptım) fakat sonuçlarımı 10arlı şekilde göstermek istiyorum. aksi takdirde sonuçlar aşağıya doğru sonu olmayan bir liste gibi duruyor ve güzel olmuyor. kodlarım aşağıda ki gibi, nereye habgi kodu yazmalıyım şimdiden teşekkürler.


    ---------kodlar---------------------------

    include("baglanti.PHP"); //veri tabani bağlantımız kuruldu

    $gosterilen="yok"; // herhangi bir kayit yazılmadığında bize kayıt bulunamadı diyecek

    $arama="select * from ilan,arsa where ilan.no=arsa.no" ; //arama kriterlerimizin sorgusuna ait ilk tümce

    $tip="arsa";

    //---------------------
    $durum=$_POST['durum']; if ($durum=="f"){}//durum sorguya girmiyor
    else {$arama=$arama." and durum like '$durum'";}

    $m2=$_POST['m2']; if (!$m2=="f"){}
    else{
    if ($m2==1)
    {
    $arama=$arama." and m2 between 0 and 100";
    }
    else if($m2==2)
    {
    $arama=$arama." and m2 between 101 and 10000000";
    }

    }

    $il=$_POST['il'];
    $arama=$arama." and il like '".$il."' ";

    $fiyat=$_POST['fiyat'];
    if ($fiyat=="f"){}
    else{ if ($fiyat=="1"){
    $arama=$arama." and fiyat between 0 and 100001";
    }
    elseif($fiyat=="2"){
    $arama=$arama." and fiyat between 100001 and 1009999";
    }
    }


    //----------- listelencek ilanların sayısı ayarlanıyor ------------------
    //$altlimit="1";
    //$ustlimit="15";

    //-------burya kadar arama tümcesi oluşturuldu ve belirtilen limitler arası ekrana yazdırılır hale geldi-------
    $arama =$arama." no limit 1, 5 ";
    $sorgu=mysql_query($arama);

    while( $satir = mysql_fetch_assoc($sorgu) ){
    // bilgileri yazdiralim
    $gosterilen="var";
    print(' Durum..= ' . $satir["durum"]);
    print('<br> m2.......= ' . $satir["m2"] );
    print('<br> fiyat......= ' . $satir["fiyat"] );
    print('<br> il...........= ' . $satir["il"].'<br><br>' );
    }

    if ($gosterilen=="yok")
    {
    echo "<center><img src='image/bilgi.jpg'><br>";
    echo "Aradığınız özelliklerde kayıt bulunamadı.<br><br>Lütfen tekrar deneyiniz. </center>";
    }

  2. #2

    Re: veri seçim ve limitli gösterimde hata

    Merhaba

    Çok fazla zamanım yok ama sormuş olduğun yapının nasıl olması gerektiği ile ilgili bir fikir vermek yardımcı olabilir.

    Temelde yapı basittir

    SELECT * FROM table LIMIT 0, 25 gibi düşünelim burada SQL den limitli veri çekmek için asıl gerekli parametreler iki tane olup LIMIT değerinin sonundaki 0 ve 25 değerleri. 0. değerden başla 25 tane veri çek demek oluyor. Bunları sanırım zaten biliyorsun. Burada sen sayfabaşına 10 tane göstereceksin ve sayfa sayfa göstereceksin

    Yapman gereken

    $sayfa=$_GET["page"]; // filtrelemek fln lazım güvenlik için sayı değerini kontrol etmek ve default değer atamak da lazım
    $sayfabasi=10; // şeklinde bunu bir değişkende tut ki değiştirebilesin
    $baslangicdegeri= $sayfa*$sayfabasi; // Benzer bir yapı sadece fikir versin diye

    Yani amaç sayfa numarası ve sayfa başına gösterim sayısını göz önünde bulundurarak LIMIT in ilk parametresini hesaplamak sonra olması gereken sorgu da şu şekilde değişir

    $SQL="SELECT * FROM table LIMIT $baslangicdegeri, $sayfabasi";

    Umarım işini görür.
    Ayrıca seni biraz daha ilerletmek adına küçük bir kod. Örneğin senin çalıştırdığın kod hiç sonuç alınmaması durumunda hata üretmese bile çeşitli uyarılar üretir(Notice Bu sebeple

    $sorgu=mysql_query($arama); ile sorgunu gerçekleştirdikten sonra
    $num = mysql_num_rows($sorgu); ile kaç sonuç döndüğünü al

    eğer 0 sonuç varsa while ı hiç çalıştırma

    echo "<center><img src='image/bilgi.jpg'><br>";
    echo "Aradığınız özelliklerde kayıt bulunamadı.<br><br>Lütfen tekrar deneyiniz. </center>"; bunun gibi bişeyi yap yine

    yani $gosterilen gibi bir değişkeni o şekilde kullanmana gerek yok sıfır sonuçla mysql_fetch_assoc/array işlemi hata verir.

    Tabi tüm cümlelerin başına bir adet "Sanırım" ekleyip dilsel bir önlem de almak lazım

    İyi çalışmalar, kolaylıklar

  3. #3

    Re: veri seçim ve limitli gösterimde hata

    çok saol. çok teşekkür ederim. en azından en son söylediğin MySQL num rows su anda takıldığım bir konuda acayip yardımcı olacak. inan maden bulmus gibiyim. teşekkür ederim

+ Yanıtla

Bu konu başlığı için etiketler

Mesaj Seçenekleri

  • Yeni başlık açamazsınız
  • Cevap yazabilirsiniz
  • Dosya ekleyemezsiniz
  • Mesajlarınızı değiştiremezsiniz