• 30-11-2006, 02:45:35
    #1
    bir çeşit sayaç yazıyorum. ve istediği şu

    xx değerindeki gösterim "1" ve her xx görüntülendiğinde +1 artacak.
    ancak bu işlem için tekrar sorgu ile bu değeri çekmemem lazım hız açısından..

    ör.;

    $sorgu = @mysql_query("SELECT a,b FROM table WHERE a='xx' LIMIT 1");
    $veri = @mysql_fetch_array($sorgu);
    $hit = $veri['b'] + 1;
    @mysql_query("UPDATE table SET b='$hit' WHERE a='xx'");


    bu şekilde uzun uzun yapmak istemiyorum bu yöntemi, sadece UPDATE satırı ile halletmem mümkünmü ? yada daha hızlı ve kısa bir yolu var mı ?
  • 30-11-2006, 02:49:03
    #2
    $sql = mysql_query("update table set b = (b+1) where a='xx'");

    böyle bir şey olur sanırım?
    limiti neden kullandın anlamadım?
  • 30-11-2006, 02:51:07
    #3
    SQL de veriyi bulduktan sonra tekrar arma yapmaması için. eğer limit koymazsak sql tablosu bitene kadar aynı veri varmı diye aramaya devam eder.

    deniyorum teşekkürler
  • 30-11-2006, 03:00:24
    #4
    saolasın Yuc3L. çalışıyor.
  • 30-11-2006, 03:03:27
    #5
    önemsiz
  • 30-11-2006, 03:08:26
    #6
    + olarak bir sorum daha olacak..

    table
    1 xx 5
    2 xx 3
    3 xx 1
    4 xx 8

    gibi değerler var her birinde farklı sayı xx kategorisi toplam aaa kadar gösterim yapmıştır. daki aaaa ları nasıl toplarım (5 + 3 + 1 + 8)
    ve bunları gösterime göre nasıl sıralarım.
  • 30-11-2006, 03:13:12
    #7
    eğer bir önceki sorunda limit kullanacak kadar cok kaydın varsa, bu toplama fonksiyonunu her çağırmanda yine yavaslık olabilir belki? onun yerine ayrı bir tablo yapıp toplam değeri bi kere yazsan sonra her okunmada toplam sayıyı 1 artırsan?
  • 30-11-2006, 03:18:35
    #8
    evet daha mantıklı .)
  • 30-11-2006, 16:04:02
    #9
    sorunuzun cevabı sum. makale tablosu aşağıdaki gibi olsun.
    no kategori izleme
    1 php 5
    2 asp 7

    select sum(izleme) from makale
    sonuç 12