• 06-04-2013, 12:09:39
    #1
    Merhaba arkadaşlar,

    aşağıda arama sayfalarımın örnekleri var. Kategori ve ürünler seçeneğim mevcut. Ancak arama yaparken kategoriye göre arama kriteri eklemek istiyorum. Bunu nasıl yapabilirim.
    Kategoriler mysqlde:

    CREATE TABLE IF NOT EXISTS `kategoriler` (
    `kategoriId` int(11) NOT NULL AUTO_INCREMENT,
    `kategori_adi` varchar(255) NOT NULL,

    Şeklindedir.


    index.php
     <td align="center" class="baslik"><form action="index.php?page=arama" method="post"  >
              <table width="94%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td height="40"><select name="tur" id="tur" onchange="degistir()" style="font-size:14pt; width:100%">
                    <option value="0" selected="selected">Ürünlerde ara</option>
    				
                  </select></td>
                </tr>
                <tr>
                  <td height="40"><input name="aranacak" id="aranacak" type="text" value="Aranacak Ürün ?" onclick="this.value = ''"  style="font-size:11pt; width:99%"/>


    arama.php
    <? 
    $aranacak = guvenlik($_POST['aranacak']);
    $tur = guvenlik($_POST['tur']);
    if ($tur == 0){
    $sql = mysql_query("SELECT * FROM urunler WHERE urunadi LIKE '%$aranacak%'");
    while ($a = mysql_fetch_array($sql)){
    if ($s == 5 ){ echo '<div style="clear:both; height:10px">&nbsp;</div>'; $s = 0; }
    if ($s == 1 or $s == 2 or $s == 3 or $s == 4){ $cl = "urun-box2"; } else { $cl = "urun-box"; }
    $icerik =  $a[urunadi];
    $icerik2 =  $a[fiyat1];
    $icerik3 =  $a[fiyat2];
    $icerik =  iconv("ISO-8859-9", "ISO-8859-9", "$icerik");	
    if (empty($a[resim])){
    $resim="yok.gif";
    } else {
    $resim="$a[resim]";
    }
    echo '<div class="'.$cl.'">
    <div class = "urun-baslik"><p><a href="index.php?page=urunicerik&id='.$a[Id].'" style="text-decoration:none;">'.$icerik.'</a></p></div>
    <div class="urun-resim">
    <a href="index.php?page=urunicerik&id='.$a[Id].'"><img src="resimler/'.$resim.'" alt=" " border="0" width="150" /></a></div>
    <br>
    <center>
    
    <strong>'.$icerik2.' '.$icerik3.'</strong>"dan itibaren</center>
    </div>';
    $s ++;	
    }
    if (mysql_num_rows($sql)<1){
    echo '<br>
    <center><strong style="font-size:16px">Arama kriterlerinize ait sonuç bulunmadı !</strong></center>';	
    }
    }


    Şimdiden Teşekkürler.
  • 06-04-2013, 15:56:47
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    iconv ne işe yarıyor orda :-)
  • 06-04-2013, 16:33:37
    #3
    fguler91 adlı üyeden alıntı: mesajı görüntüle
    iconv ne işe yarıyor orda :-)
    Yazı karakterlerinin düzeltilmesi ile ilgili

    Bir kaç örnek indirdim kategoriye göre arama için ama çözemedim sorunumu,

    yardımlarınızı rica ederim.
  • 06-04-2013, 16:57:43
    #4
    ürünler tablosunda illa ki hangi kategoride olduğu yazıyordur. hangi kategoride olduğunu yazan sütün kategoriID'sına bağlıysa önce aranan türün kategoriler tablosundan ID'sini çekmen gerekir. ve daha sonrasında şunu değiştirmen gerekecek
    $sql = mysql_query("SELECT * FROM urunler WHERE kategoriID = '$tur' AND urunadi LIKE '%$aranacak%'");
  • 06-04-2013, 17:20:14
    #5
    Üyeliği durduruldu
    ürünlerinizin kategori id belirtilmiş olarak verilmesi lazim gelir. arama yaparkende SELECT * FROM ürünler WHERE katid='1' LIKE ürünadi='nokia' gibi bir sorgu oluşturulmasiyla kategori idsi 1 olup adinda nokia geçen ürünjleri getirir php amca.
  • 09-04-2013, 19:30:33
    #6
    Bilgilendirdiğiniz için teşekkürler, bu sorunu hallettim ancak bu seferde ikinci bir sorunum var;





    İstediğim tam olarak şu;
    1-Arama seçeneklerinde kategoriyi seçtiğimde diğer seçenekten hepsi dediğimde o kategorideki tüm ürünleri göstersin,
    2-Kategori ve markayı seçtiğimde o kategorideki sadece o markalı ürünleri göstersin.

    Şuanki kodlarda hepsi seçeneğini seçtiğimde o kategorideki tüm ürünleri gösteriyor, ancak marka seçtiğimde ürün göstermiyor. Kodlarım aşağıda.

    <select name="kategori" id="kategori" >
    <?php
    $kat_sorgu = mysql_query("SELECT * FROM kategoriler");
    while($kat = mysql_fetch_assoc($kat_sorgu)) {
       echo '<option value="'.$kat['kategoriId'].'">'.$kat['kategori_adi'].'</option>';
    }
    ?>
    </select>
    
    
    <select name="marka" id="marka" >
    <option value="hepsi">Hepsi</option>
    <?php 
    $kat_sorgu = mysql_query("SELECT * FROM marka");
    while($kat = mysql_fetch_assoc($kat_sorgu)) {
      echo '<option value="'.$kat['marka'].'">'.$kat['marka'].'</option>';
    } 
      ?>
    <? 
    $ara = guvenlik($_POST['ara']);
    $kategori = guvenlik($_POST['kategori']);
    $marka = $_POST['marka'];
    if($marka == "hepsi") {
      $marka_ara = '';
    } else {
      $marka_ara = 'AND marka = '.$marka;
    }
    $sql = mysql_query("SELECT * FROM urunler WHERE kategoriId = '$kategori' $marka_ara AND urunadi LIKE '%$ara%'");  
    while ($a = mysql_fetch_array($sql)){
    if ($s == 5 ){ echo '<div style="clear:both; height:10px">&nbsp;</div>'; $s = 0; }
    if ($s == 1 or $s == 2 or $s == 3 or $s == 4){ $cl = "urun-box2"; } else { $cl = "urun-box"; }
    $icerik =  $a[urunadi];
    $icerik2 =  $a[fiyat1];
    $icerik3 =  $a[fiyat2];
    $icerik =  iconv("ISO-8859-9", "ISO-8859-9", "$icerik");	
    if (empty($a[resim])){
    $resim="yok.gif";
    } else {
    $resim="$a[resim]";
    }
    echo '<div class="'.$cl.'">
    <div class = "urun-baslik"><p><a href="index.php?page=urunicerik&id='.$a[Id].'" style="text-decoration:none;">'.$icerik.'</a></p></div>
    <div class="urun-resim">
    <a href="index.php?page=urunicerik&id='.$a[Id].'"><img src="resimler/'.$resim.'" alt=" " border="0" width="150" /></a></div>
    <br>
    <center>
    
    <strong>'.$icerik2.' '.$icerik3.'</strong>"dan itibaren</center>
    </div>';
    $s ++;	
    }
    if (mysql_num_rows($sql)<1){
    echo '<br>
    <center><strong style="font-size:16px">Arama kriterlerinize ait sonuç bulunmadı !</strong></center>';	
    }
    } 
    ?>

    Urunler Tablom
    CREATE TABLE IF NOT EXISTS `urunler` (
      `Id` int(11) NOT NULL AUTO_INCREMENT,
      `urunadi` varchar(255) CHARACTER SET latin5 NOT NULL,
      `aciklama` longtext CHARACTER SET latin5 NOT NULL,
      `kategoriId` varchar(255) NOT NULL,
      `resim` varchar(255) NOT NULL,
      `marka` longtext CHARACTER SET utf8 COLLATE utf8_turkish_ci NOT NULL,
      `fiyat1` longtext NOT NULL,
      `fiyat2` longtext NOT NULL,
    Marka Tablom
    CREATE TABLE IF NOT EXISTS `marka` (
      `Id` int(11) NOT NULL AUTO_INCREMENT,
      `marka` varchar(255) NOT NULL,
      PRIMARY KEY (`Id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=34 ;
    Kategoriler Tablom
    CREATE TABLE IF NOT EXISTS `kategoriler` (
      `kategoriId` int(11) NOT NULL AUTO_INCREMENT,
      `kategori_adi` varchar(255) NOT NULL,
      `sira` varchar(100) DEFAULT NULL,
      `resim` varchar(25) NOT NULL,
      PRIMARY KEY (`kategoriId`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin5 AUTO_INCREMENT=86 ;
    Teşekkürler.
  • 10-04-2013, 16:19:37
    #7
    Güncel
  • 10-04-2013, 17:10:31
    #8
    if ( $kat['marka']==1 ) { // hepsi için atanmış value 1 kabul ettim
    $sql = mysql_query("SELECT * FROM urunler WHERE kategoriId = '$kategori' AND urunadi LIKE '%$ara%'");   
    } else {
    $sql = mysql_query("SELECT * FROM urunler WHERE kategoriId = '$kategori' AND '$marka_ara' AND urunadi LIKE '%$ara%'");   
    }
  • 12-04-2013, 12:41:39
    #9
    Sable adlı üyeden alıntı: mesajı görüntüle
    if ( $kat['marka']==1 ) { // hepsi için atanmış value 1 kabul ettim
    $sql = mysql_query("SELECT * FROM urunler WHERE kategoriId = '$kategori' AND urunadi LIKE '%$ara%'");   
    } else {
    $sql = mysql_query("SELECT * FROM urunler WHERE kategoriId = '$kategori' AND '$marka_ara' AND urunadi LIKE '%$ara%'");   
    }
    Merhaba,

    Verdiğiniz kodu az biraz revize ettim ve sorunumu çözdüm.

    $marka = $_POST['marka'];
    if($marka == "0") {   
    $marka_ara = '';
    } else {   
    $marka_ara = 'AND markaId = '.$marka;
    }
    $sql = mysql_query("SELECT * FROM urunler WHERE kategoriId = '$kategori' $marka_ara AND urunadi LIKE '%$ara%'"); 
    while ($a = mysql_fetch_array($sql)){