• 20-05-2010, 21:32:10
    #1
    Üyeliği durduruldu
    arkadaşlar bir fonksiyon.php dosyam var burada bazı sorguları koyuyorum örn resimcek($id){ ..... şeklinde id ye göre resmi alıp ekrana basıyor,

    bazıaları diyebilir bunda ne var normal veri listelemesinde resimleri direk gösterdiğimde daha hızlı gösteriyor bunun gibi örnekler çoğaltılabilir

    genel olarak bazı çok özellikli scipler görüyorum hızlı, bazende kendi yaptığımız özelliği olmayan 5-10 dosyadan oluşan sciptler yavaş kalıyor bunun gibi

    demek istediğim odurki hızlandırılabilirmi ?
  • 20-05-2010, 22:00:29
    #2
    Ordaki $id video ya ait id büyük ihtimalle. Örnekle anlatacak olursam

    <?php
    $sql = mysql_query("SELECT * FROM video WHERE id='1'"); //sorguyu yaptik.
    $fetch = mysql_fetch_array($sql);
    //dedikten sonra resim i almak için 
    $resim = resimcek($fetch['id']);
    //şeklinde bir sorgu daha caliştiracak bir fonksiyon kullaniyorsan performans kaybına neden olur.
    ?>
  • 20-05-2010, 22:21:00
    #3
    Üyeliği durduruldu
    direk yazıyorum şekildeki gibi:

    $sorgu2 = @mysql_query("select * from videolar limit 20");
    while ($okur = @mysql_fetch_array($que2)) {
    echo '<div class="videolar" id="'.$okur['id'].'">
    <div class="resim"><a href="'.$siteadres.'/'.$okur['id'].'_'.$okur['v_seo'].'"><img src="'.resimcek($okur['id']).'" title="'.$oku['v_title'].'"></a></div>
    <div class="baslik"><a href="'.$siteadres.'/'.$okur['id'].'_'.$okur['v_seo'].'">'.$okur['v_title'].'</a></div>
    </div>
     ';}
    direk şekildeki gibi

    buda resim fonksiyonu

    function resimcek($resimal) {
    $resimsor = mysql_fetch_object(mysql_query("SELECT * FROM videolar where id='".$resimal."'"));
    $resim=$resimsor->v_image;
    $kontrol = @fopen($resim, "r"); 
    if ($kontrol) {  
    $resimadres = $resim;
    } else {      
    $resimadres = $siteadres."/images/yok.jpg";
    }
    return $resimadres;
    }
    şeklinde eğer şu son fonksiyonu döndürmessem gine hızlı döndürsem yavaşlıyor...
  • 20-05-2010, 22:31:39
    #4
    "(LEFT (veya) RIGHT) JOIN" fonksiyonunu kullanacaksın sorguda. Örnek olarak:

    $sorgu = "SELECT * FROM video LEFT JOIN resim ON resim.id=video.id LIMIT 20";
    Bu konuda binlerce deneme yaptım. Bu özelliği kullanmanı öneririm.
  • 21-05-2010, 00:00:14
    #5
    Üyeliği durduruldu
    hızdan kasıt nedir. 10 milyon içerik / hit mi var. sanmıyorum.
    ozaman maceraya gerek yok


    ---- böyle çöplük kod yazmadan başlayabilirsin işe.
    ve fetch array yerine assoc kullan. num rows ile saydırma yapma. MVC temelli sistemler yap. sen mutlu herkes mutlu

    echo '<div class="videolar" id="'.$okur['id'].'">
    <div class="resim"><a href="'.$siteadres.'/'.$okur['id'].'_'.$okur['v_seo'].'"><img src="'.resimcek($okur['id']).'" title="'.$oku['v_title'].'"></a></div>
    <div class="baslik"><a href="'.$siteadres.'/'.$okur['id'].'_'.$okur['v_seo'].'">'.$okur['v_title'].'</a></div>
    </div>
    ';}
  • 21-05-2010, 00:03:41
    #6
    Üyeliği durduruldu
    hizlandirlacak bir yapi varsa. ilk önce yavaşlığın nerden kaynaklandigini belli kisimlari iptal ederek denediniz mi ?
  • 21-05-2010, 00:08:18
    #7
    @BHCoder; mysql_num_rows fonksiyonunu neden kullanma dedin? Güvenlik açığı veya yavaşlamaya mı neden oluyor?
  • 21-05-2010, 00:17:55
    #8
    Üyeliği durduruldu
    Hkan adlı üyeden alıntı: mesajı görüntüle
    "(LEFT (veya) RIGHT) JOIN" fonksiyonunu kullanacaksın sorguda. Örnek olarak:

    $sorgu = "SELECT * FROM video LEFT JOIN resim ON resim.id=video.id LIMIT 20";
    Bu konuda binlerce deneme yaptım. Bu özelliği kullanmanı öneririm.
    bundan sonra devamı nasıl olacak assoc vs. mi kullanacağım . object şeklindemi alacağım...
  • 21-05-2010, 00:25:54
    #9
    Hocam sen resmi de videolar tablosundan alıyormuşsun. Şimdi farkettim bunu.

    Ve farkettim ki direk değişkeni yazıp çıktıyı edinebileceğin halde uzatmışsın baya. Şu şekilde yapınca olmuyor mu?:

    <img src=".$siteadres."/".$oku['v_resim'].'" title="'.$oku['v_title'].'" />