• 30-04-2008, 16:54:26
    #1
    Üyeliği durduruldu
    arkadaşlar merhaba

    elimdeki scriptte arananları kayıt ediyorm

    mesela nero kelimesi 2 kez arandıysa nero (2) bu şekilde göstermesini istiyorum, nasıl yapabilirim?
  • 30-04-2008, 17:07:42
    #2
    Mysqlda kaydettiğin kelime alanını unique yapman gerekiyor ki aynı kelimeler tekrar tekrar eklenmesin.

    Sonrasında hit diye bir alan daha açacaksın tabloda, örneğin;

    id, kelime, hit

    Kelimeleri kaydettiğin kod kısmını aşağıdaki gibi yapacaksın.
    (Değişkenlerini kendine uydurabilirsin.)

    <?php
    $kelime = $_GET['kelime'];
    $sonuc = mysql_query("Select kelime From arananlar_tablom Where kelime='$kelime'");
    
    if(mysql_num_rows($sonuc) > 0) {
    	mysql_query("Update arananlar_tablom SET hit=(hit+1) Where kelime='$kelime'");
    
    }else{
    	mysql_query("Insert INTO arananlar_tablom (kelime, hit) Values ('$kelime', 0)");
    }
    ?>
    Kelimeleri listeletirken de;

    echo $kelime ($hit);
  • 30-04-2008, 17:09:33
    #3
    mysql da aranan tablosunda 2 sutun olsun.. kelime,hit.. sorgun su sekilde olur..

    UPDATE aranan SET hit = hit + 1 WHERE kelime = '$aranan'
  • 30-04-2008, 17:12:38
    #4
    Üyeliği durduruldu
    lanet olsn ya anlamıyorm şu phpden pek

    ErsaT ustad senin verdiğin kodlarla yaptım bknz, https://www.r10.net/757987-post5.html

    kelime değişkenim "q"

    arananlar tablosunda ise zaman, kelime war..

    biraz daha açıklayıcı olabilirmisiniz (
  • 30-04-2008, 17:18:54
    #5
    O halde şunları kullanarak tekrar oluştur;
    ara.php
    <?php
    if($_POST){
    $kelime = mysql_real_escape_string($_REQUEST['kelime']);
    $sonuc = mysql_query("Select Count(kelime) From arananlar where kelime='$kelime'");
    $sayi = mysql_result($sonuc,0);
    
        if($sayi ==0){
        mysql_query("Insert Into arananlar (zaman, kelime, hit) Values ('".time()."', '$kelime', 0)");
        $zamanasimi    = time()-24*60*60;
        mysql_query("Delete From arananlar where zaman < ".$zamanasimi);
        }
    }
    ?>
    Alıntı
    SQL Yapısı;
    CREATE TABLE `arananlar` (
    `zaman` varchar(50) NOT NULL,
    `kelime` varchar(100) NOT NULL,
    `hit` INT(8) NOT NULL,
    KEY `kelime` (`kelime`)
    );
    Veri Listele;
    <?php
    $sonuc = mysql_query("Select kelime, hit From arananlar order by zaman DESC limit 5");
    $a=1;
    while($satir = mysql_fetch_array($sonuc)){
    $kelime = $satir['kelime'];
    echo $a."- <a title=\"".$kelime."\" href=\"arama.php?kelime=".$kelime."\">".$kelime."</a> (".$satir['hit'].")<br>";
    $a++;
    }
    ?>
  • 30-04-2008, 17:25:43
    #6
    Üyeliği durduruldu
    1- erol (0)
    2- (0)

    2 kez aramama rağmen (0) değişmedi hiç...
  • 30-04-2008, 17:46:39
    #7
    ara.php ye update eklememişiz.
    <?php
    if($_POST){
    $kelime = mysql_real_escape_string($_REQUEST['kelime']);
    $sonuc = mysql_query("Select Count(kelime) From arananlar where kelime='$kelime'");
    $sayi = mysql_result($sonuc,0);
        if($sayi ==0){
        mysql_query("Insert Into arananlar (zaman, kelime, hit) Values ('".time()."', '$kelime', 0)");
        $zamanasimi    = time()-24*60*60;
        mysql_query("Delete From arananlar where zaman < ".$zamanasimi);
        }else{
        mysql_query("Update arananlar SET hit=(hit+1) Where kelime='$kelime'");
        }
    }
    ?>
  • 30-04-2008, 17:56:12
    #8
    Üyeliği durduruldu
    eyww ustad yaptım teşekkürler