• 24-05-2007, 00:46:13
    #1
    Merhaba Arkadaşlar Php Konusunda Bilgisi Olan Arkadaşlar Yardımcı Olursa Sevinirim..

    Phpde Aramaları Veritabanına Kaydediyorum. Burda Bir Sorun Yok Ama Ben Aynı Aramalar İçin Yeni Bir Satir Yerine O Aramanin Hitini 1 Arttırmak istiyorum Veritabanı için

    aranalar tablosunda -> id / aranan / hit diye bolumleri olusturdum. Aramalari Nasıl Karşılaştirip Varsa hit e +1 yoksa yeni ekleme (insert into) yaparım ?

    yardımlarınızı bekliyorum
  • 24-05-2007, 02:37:09
    #2
    Üyeliği durduruldu
    <?
    //önce formdan ya da adresten gelen kelimeyi alırsın
    @$aranan = $_GET['aranan'];
    // bu kelime daha önce aranmışmı diye kontrol yaparsın
    $arama_s = mysql_query("SELECT * FROM arananlar WHERE aranan = $aranan");
    // burada yaptığın sorgunun satır sayısını alıyosun
    $arama_s2 = mysql_num_rows($arama_s);
    if ($sql2 > 0) // eğer arama sorgu satır sayısı 0 dan büyükse, yani daha önce aranmış ise
    {
    $hit = mysql_result ($arama_s,0,"hit"); // kelimenin hit sayısını alıyor
    mysql_query("UPDATE arananlar SET hit = $hit + 1 WHERE aranan = '$aranan'"); // hit sayısını 1 arttırıyor
    }
    else { // arama sorgu satır sayısı 0 sa
    mysql_query("INSERT INTO arananlar VALUES ('','$aranan','1')"); // yeni kelimeyi veri tabanına ekliyor, buradaki 1 değerini mysql yapısına göre girmene gerek kalmayabilirde
    }
    ?>
    şöyle bişey yapabilirsin belki. Ama gece gece yanlış şeyler yazmış olabilirim
  • 24-05-2007, 13:08:41
    #3
    Olmadi abi veritabanina ekliyor ama hit arttirma işlemlerini yapmiyor tekrar tekrar ekliyor
  • 24-05-2007, 13:20:05
    #4
    <?
    $aranan = "elma";
    $sorgu = @mysql_query("SELECT * FROM tablom WHERE kelime='$aranan'");
    $sayim = @mysql_num_rows($sorgu);
    if($sorgu > 0) {
     @mysql_query("UPDATE tablom SET hit=(hit + 1) WHERE kelime='$aranan'");
    } else {
     @mysql_query("INSERT INTO tablom (kelime) VALUES ('$aranan')");
    }
    ?>
  • 24-05-2007, 13:21:26
    #5
    "aranan" alanını unique yaparsınız ve mysql versiyonunuz destekliyorsa :

         
    INSERT INTO arananlar VALUES('', '$aranan', '1')
                                 ON duplicate KEY UPDATE hit=hit+1;
    sorgusunu kullanıp yoksa ekleyip varsa da hitini arttırabilirsiniz.
  • 24-05-2007, 13:46:36
    #6
    dsgnr adlı üyeden alıntı: mesajı görüntüle
    <?
    $aranan = "elma";
    $sorgu = @mysql_query("SELECT * FROM tablom WHERE kelime='$aranan'");
    $sayim = @mysql_num_rows($sorgu);
    if($sorgu > 0) {
     @mysql_query("UPDATE tablom SET hit=(hit + 1) WHERE kelime='$aranan'");
    } else {
     @mysql_query("INSERT INTO tablom (kelime) VALUES ('$aranan')");
    }
    ?>
    if($sorgu > 0) { bölümünü if($sayim > 0) { olarak değiştirirsen işini görmesi lazım.
  • 24-05-2007, 14:20:46
    #7
    ( Vinsanity, dsgnr, tolgaxp, Ersat ) Yardımlarınız İçin Teşekkür Ederim..

    Çalişan Kod:

    Alıntı

    <?
    $aranan = "elma";
    $sorgu = @mysql_query("SELECT * FROM tablom WHERE kelime='$aranan'");
    $sayim = @mysql_num_rows($sorgu);
    if($sayim > 0) {
    @mysql_query("UPDATE tablom SET hit=(hit + 1) WHERE kelime='$aranan'");
    } else {
    @mysql_query("INSERT INTO tablom (kelime) VALUES ('$aranan')");
    }
    ?>