• 09-12-2006, 23:14:12
    #1
    Arakdaşlar ilan scriptim için detaylı arama yapmak istedim fakat bazı sorunlar la karşılaştım.
    1. Markayı comboboxtan seçtiriyorum. Markalar için bir de Tümü seçeneği ekliyorum values ini boş bırakıyorum. Fakat arama esnasında Tümü seçeneği seçilirse aramayı yapmıyor boş sonuç veriyor aynı sorun textfield ler de de var yani boş bırakınca sorguyu etkiliyor. bunu nasıl giderebilirim veya elinde detaylı arama kodları olan varsa örnek teşkil etmesi için paylaşabilirmi.

    Kullandığım kodlar :

    <?
    $detay="SELECT * FROM ilanlar where onay='onayli' and markasi like '%$marka' and grup like '%$grup%' and fiyat  between '$fiyat1' and '$fiyat2' ";
    $detays = mysql_query($detay);
    $detays_sayi= mysql_num_rows($detays);
    if ($detays_sayi==0) { echo"Aradiginiz kriterlerde kayit bulunamamistir";}
    else {
    
    while ($oku= @mysql_fetch_row($detays)) {
    $idd=$oku[0];
    $markad=$oku[1];
    $modeld=$oku[2];
    $fiyatd=$oku[4];
    $yild=$oku[6];
    $grupd=$oku[26];
    
    
    
    ?>
      <tr>
        <td height="23"><? echo $markad ?></td>
        <td><? echo $modeld ?></td>
        <td><? echo $fiyatd ?></td>
        <td><? echo $yild ?></td>
    	<td><? echo $detays_sayi ?></td>
    	<? } } ?>
      </tr>
    
    </table>
  • 09-12-2006, 23:24:24
    #2
    aranacak değerler dolu ise sql cümlene eklemek nasıl olur?
    tabi gönderilen verileri filtrelemeyi de unutmamak gerekir.
    böylece marka boşsa sql de markayı aramaz.

    $sql = "select * from where onayli = 'onayli' ";
    if (isset($_POST['marka'])) {
    $sql .= "and markasi like = '%marka%';
    }
  • 09-12-2006, 23:28:27
    #3
    anladım teşekkür ederim ama takıldığım taraf yaklaşık 10 tane satır var hepsi için ayrı filtre yaparsam sorguyu yavaşlatmazmı?
  • 09-12-2006, 23:33:33
    #4
    başka nasıl bir yöntem kullanılır bilmiyorum, gelen verilere göre sql sorgunu bir değişkene atarsın ($sqldevami gbibi)

    $sql = "select * from ilanlar where onayli = 'onayli' $sqldevami order by tarih desc"

    böyle birsey işini görür sanıyorum
  • 09-12-2006, 23:39:50
    #5
    tamam çok teşekkür ediyorum deneyecem
  • 09-12-2006, 23:46:31
    #6
    tümü seçeneğinin value'si 0 olsun. ona göre işlem yaparsınız.
    if($tumu == "0") {
    $sorgu =
    } else {
    $sorgu =
    }
    şeklinde. ayrıca sorguda and yerine or kullanın.
  • 10-12-2006, 00:48:48
    #7
    Çok saolun arkadaşlar altayalp ve yuc3l sorguları çalıştırdım. Hepiniz den allah razı olsun
  • 10-12-2006, 09:56:52
    #8
    Üyeliği durduruldu
    tmm hızı söylmişsin ya öneri yapayım
    if($tumu == "0") {
    $sorgu
    =
    } else {
    $sorgu
    =
    }



    bu şekilde ve elseif gibi i gidersen tıkanabilir 10 tane filtre varsa hele
    switch($tumu)
    case 0:
    $sorgu =

    break;
    case x:
    break;
    }

    gibi kullanabilirsiniz
  • 10-12-2006, 12:05:13
    #9
    burada switch gereksiz. fazladan kod yazmak olur. gerçi 1 satır kod var ama. burada yapılacak işlem şu eğer $tumu 0 ise sorguya where kategori='$kategori' ekle. yani tek kriter var.