• 11-04-2014, 20:23:22
    #1
    Codeigniter db class ile verinin kaçıncı sırada olduğu belirlemek için ufak bir fonksiyon yazdım fakat hata aldım.
        function get_video_promo($cat_sef_uri,$video_sef_uri){
        $query = $this->db->set('@videos.video_id:',0);
    //saydırma işlemeni video_id 'ye göre yapacam. o yüzden ilk önce video_id sıfırladım.
    //daha sonra aşağıdaki gibi +1 şeklinde artırarak gittim.
        $query = $this->db->select('@videos.video_id := @videos.video_id+1 AS sira,videos.category_id,videos.season_id,videos.sef_uri')
        ->from('videos')
    	->join('categories','videos.category_id = categories.cat_id','LEFT')
    	->where('videos.sef_uri',$video_sef_uri)
    	->where('categories.sef_uri',$cat_sef_uri)
        ->order_by('videos.sef_uri+0','asc');
    	if($query->num_rows() > 0)
    		{
    			$data = $query->result_array();
    			return $data;
    		
    		}
        }
    sanırım birkaç hata var o yüzden kod bu class ta saglıklı çalışmadı.
    localhost ta codeigniter classı olmadan çalıştırdım ama bu class ta çalışmadı.
    Normal db class olmadan hali bu çalışıyor. ama codeingniter a çeviremedim.
        $sorgu=mysql_query("Set @videos.video_id:=0");
        $sorgu=mysql_query("Select
        @videos.video_id := @videos.video_id+1 AS sira,videos.category_id,videos.season_id,videos.sef_uri
        FROM videos
        INNER JOIN categories ON videos.category_id=categories.cat_id WHERE videos.sef_uri=categories.sef_uri
        ORDER BY videos.sef_uri+0 asc");
        while($db = mysql_fetch_array($sorgu)) {
        echo $db['title'].' sıralamada: <b>'.$db['sira'].'.</b> sırada bulunuyor<br>';
        }
  • 11-04-2014, 22:00:55
    #2
    amatörce olabilir ama böyle yapmak yerine

    veriyi foreach ile döndürürken $i++ yapıp saydırsanız ve sırayı alsanız daha iyi değil mi?

    $i = 1;
    while($db = mysql_fetch_array($sorgu)) {
    echo $db['title'].' sıralamada: <b>'. $i++ .'.</b> sırada bulunuyor<br>';
    }
    $i = 1;
    foreach($sorgu AS $s)
    {
    echo $s['title'].' sıralamada: <b>'. $i++ .'.</b> sırada bulunuyor<br>';
    }
    gibi
  • 11-04-2014, 22:03:11
    #3
    bu şekilde mysql in işlem yapması sunucuyu daha az kasar diye diğer türlü daha çok kasar diye düşündüm.
  • 11-04-2014, 22:09:48
    #4
    1 sayfada kaç video listeliyorsunuz? toplam kaç video listeliyorsunuz? Gözle görülecek kadar etki edeceğini düşünmüyorum ben.
  • 11-04-2014, 22:59:11
    #5
    Üyeliği durduruldu
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    Codeigniter db class ile verinin kaçıncı sırada olduğu belirlemek için ufak bir fonksiyon yazdım fakat hata aldım.
        function get_video_promo($cat_sef_uri,$video_sef_uri){
        $query = $this->db->set('@videos.video_id:',0);
    //saydırma işlemeni video_id 'ye göre yapacam. o yüzden ilk önce video_id sıfırladım.
    //daha sonra aşağıdaki gibi +1 şeklinde artırarak gittim.
        $query = $this->db->select('@videos.video_id := @videos.video_id+1 AS sira,videos.category_id,videos.season_id,videos.sef_uri')
        ->from('videos')
    	->join('categories','videos.category_id = categories.cat_id','LEFT')
    	->where('videos.sef_uri',$video_sef_uri)
    	->where('categories.sef_uri',$cat_sef_uri)
        ->order_by('videos.sef_uri+0','asc');
    	if($query->num_rows() > 0)
    		{
    			$data = $query->result_array();
    			return $data;
    		
    		}
        }
    sanırım birkaç hata var o yüzden kod bu class ta saglıklı çalışmadı.
    localhost ta codeigniter classı olmadan çalıştırdım ama bu class ta çalışmadı.
    Normal db class olmadan hali bu çalışıyor. ama codeingniter a çeviremedim.
        $sorgu=mysql_query("Set @videos.video_id:=0");
        $sorgu=mysql_query("Select
        @videos.video_id := @videos.video_id+1 AS sira,videos.category_id,videos.season_id,videos.sef_uri
        FROM videos
        INNER JOIN categories ON videos.category_id=categories.cat_id WHERE videos.sef_uri=categories.sef_uri
        ORDER BY videos.sef_uri+0 asc");
        while($db = mysql_fetch_array($sorgu)) {
        echo $db['title'].' sıralamada: <b>'.$db['sira'].'.</b> sırada bulunuyor<br>';
        }
    $this->db->query ile salt sql sorgunuzu yazabilirsiniz
    http://ellislab.com/codeigniter/user-guide/database/examples.html
  • 11-04-2014, 23:14:23
    #6
    BHCoder adlı üyeden alıntı: mesajı görüntüle
    $this->db->query ile salt sql sorgunuzu yazabilirsiniz
    http://ellislab.com/codeigniter/user.../examples.html
    $query = $this->db->query("Set @videos.video_id:=0");
    $query = $this->db->query("Select
    @videos.video_id := @videos.video_id+1 AS sira,videos.category_id,videos.season_id,videos.sef_uri
    FROM videos
    INNER JOIN categories ON videos.category_id=categories.cat_id WHERE videos.sef_uri='$video_sef_uri' and categories.sef_uri='$cat_sef_uri'
    ORDER BY videos.sef_uri+0 asc");
    şeklinde yaptım fakat yine olmadı.
  • 12-04-2014, 23:29:45
    #7
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    bu şekilde mysql in işlem yapması sunucuyu daha az kasar diye diğer türlü daha çok kasar diye düşündüm.
    Set @videos.video_id:=0

    mysql de set@tempdegisken:=deger, değer atamak if else vs durumlarda kullanılıyor bildiğim kadarıyla bunun dışında bir kullanım görmedim daha önce, yaptığınız işlem fantazi olmuş. mysql manuelden bakarsınız.

    php bir sayfada mysql veritabanı bağlantılı ve bağlantısız bir benchmark yaparsanız neyin kastıracağını görebilirsiniz.

    php'nin c ile yazıldığınıda eklersek kasmaz arkadaşım
  • 13-04-2014, 04:46:22
    #8
    CoreDeluxe adlı üyeden alıntı: mesajı görüntüle
    Set @videos.video_id:=0

    mysql de set@tempdegisken:=deger, değer atamak if else vs durumlarda kullanılıyor bildiğim kadarıyla bunun dışında bir kullanım görmedim daha önce, yaptığınız işlem fantazi olmuş. mysql manuelden bakarsınız.

    php bir sayfada mysql veritabanı bağlantılı ve bağlantısız bir benchmark yaparsanız neyin kastıracağını görebilirsiniz.

    php'nin c ile yazıldığınıda eklersek kasmaz arkadaşım
    set @ kullanmamın sebebi id değeri sıfırdan başlamıyorsa sıfırdan başlatıp +1 artırarak 1,2,3,4 şeklinde id nin değerini sira sayısı olarak kullanıyorum. bana mysql daha temiz işlem olarak geldi. şimdilik mysql ile yapmak istiyorum, ileride duruma göre sadece php ile de yapabilirim.
  • 13-04-2014, 15:11:55
    #9
    codece çevirmeden önceki sorgunuzda left join yok ama codec de left de eklemişsiniz. tek farklılık olarak onu gördüm ben.

    onu düzelterek tekrar deneyin bakalım ne çıkacak