• 03-01-2013, 18:19:11
    #1
    satır 6 'dan 12 'e kadar olan kodların yerine satır 15 'ten 22 'ye kadar olan kodları kullanmak istiyorum. fakat
    //Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/user/public_html/function.php on line 15
    şeklinde hatayla karşılaşıyorum. Amaç function videolar 'da kategori tablosundaki resim kolonunu da kullanabilmek. sql sorgusunu yaptım ama mysql_fetch_array sorununu aşamadım. yanlış olan nedir burada
    <?
    function videolar($max=10,$page=1,$order='hit') {
    global $tp;
    $alt=($page - 1) * $max;
    $ix=1;
    //orjinal fonksiyon başlangıç
    $q = mysql_query("Select adi,adi_s,aciklama,resim,hit,vote,voteint,etiketler,sure,tarih from ".$tp."videolar where aktif=1 order by $order desc limit $alt,$max");
    $nr2 = mysql_num_rows(mysql_query("Select id from ".$tp."videolar where aktif=1"));
    while($rs=mysql_fetch_array($q)) {
    $video[] = array('adi'=>$rs['adi'],'adi_s'=>$rs['adi_s'],'aciklama'=>$rs['aciklama'],'resim'=>adres($rs['resim']),'hit'=>$rs['hit'],'puan'=>ortalama($rs['voteint'],$rs['vote']),'etiketler'=>parcala(",",$rs['etiketler']),'sure'=>$rs['sure'],'tarih'=>date("d.m.Y",$rs['tarih']),'i'=>$ix);
    $ix++;
    }
    //orjinal fonksiyon bitiş
    
    //olmasını istediğim başlanğıç
    $q = mysql_query("Select vid.*,vid.adi AS vidadi,vid.adi_s AS vidurl,vid.tarih,kg.id,kg.alt,kg.aciklama AS kgaciklama,kg.resim AS kgresim 
    from videolar AS vid INNER JOIN kategori AS kg ON(vid.kid=kg.id) where vid.aktif=1 order by vid.$order desc limit $alt,$max");
    $nr2 = mysql_num_rows(mysql_query("Select id from videolar where aktif=1"));
    while($rs=mysql_fetch_array($q)) {
    $video[] = array('adi'=>$rs['vidadi'],'adi_s'=>$rs['vidurl'],'aciklama'=>$rs['kgaciklama'],'resim'=>$rs['kgresim'],'hit'=>$rs['hit'],'puan'=>ortalama($rs['voteint'],$rs['vote']),'etiketler'=>parcala(",",$rs['etiketler']),'sure'=>$rs['sure'],'tarih'=>date("d.m.Y",$rs['tarih']),'i'=>$ix);
    $ix++;
    }
    //olmasını istediğim bitiş
    //Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/user/public_html/function.php on line 15
    if($nr2>$max){
    $sayfa_sayisi = ceil($nr2/$max); 
    if ( $page < 1 OR $page > $sayfa_sayisi ) { $page = 1; } 
    $sayfalar_araligi = ceil($sayfa_sayisi/12); 
    $sayfalanacak = array(1,$sayfa_sayisi,birdensuna(($page-20),$sayfa_sayisi) ,birdensuna(($page-15),$sayfa_sayisi),birdensuna(($page-10),$sayfa_sayisi) ,birdensuna(($page-5),$sayfa_sayisi),birdensuna(($page-2),$sayfa_sayisi) ,birdensuna(($page-1),$sayfa_sayisi),$page ,birdensuna(($page+1),$sayfa_sayisi),birdensuna(($page+2),$sayfa_sayisi) ,birdensuna(($page+5),$sayfa_sayisi),birdensuna(($page+10),$sayfa_sayisi) ,birdensuna(($page+15),$sayfa_sayisi),birdensuna(($page+20),$sayfa_sayisi)); 
    for ($i=$page;$i>0;$i=$i-$sayfalar_araligi) { $sayfalanacak[] = $i; } 
    for ($i=$page;$i<$sayfa_sayisi;$i=$i+$sayfalar_araligi) { $sayfalanacak[] = $i; } 
    $sayfalanacak = array_unique($sayfalanacak);
    sort($sayfalanacak); 
    }
    $videolar = array('video'=>$video,'sayfalar'=>$sayfalanacak,'sayfa'=>$page,'toplam'=>ceil($nr2/$max));
    return $videolar;
    }
    
    function videolars($max=10,$page=1,$order='hit',$ktg) {
    global $tp;
    $alt=($page - 1) * $max;
    $ix=1;
    $q = mysql_query("Select v.*,v.adi AS videoadi ,v.adi_s AS videourl,v.aciklama AS vaciklama,v.resim AS vresim,k.id,k.alt,k.resim AS kresim from 
    ".$tp."videolar AS v INNER JOIN ".$tp."kategori AS k ON(v.kid=k.id) where k.alt=$ktg and v.aktif=1 order by v.$order desc limit $alt,$max");
    $nr2 = mysql_num_rows($q);
    while($rs=mysql_fetch_array($q)) {
    $video[] = array('adi'=>$rs['videoadi'],'adi_s'=>$rs['videourl'],'aciklama'=>$rs['vaciklama'],'k_resim'=>adres($rs['kresim']),'hit'=>$rs['hit'],'puan'=>ortalama($rs['voteint'],$rs['vote']),'etiketler'=>parcala(",",$rs['etiketler']),'sure'=>$rs['sure'],'tarih'=>trtarih4($rs['tarih']),'i'=>$ix);
    $ix++;
    }
    
    if($nr2>$max){
    $sayfa_sayisi = ceil($nr2/$max);
    if ( $page < 1 OR $page > $sayfa_sayisi ) { $page = 1; }
    $sayfalar_araligi = ceil($sayfa_sayisi/12);
    $sayfalanacak = array(1,$sayfa_sayisi,birdensuna(($page-20),$sayfa_sayisi) ,birdensuna(($page-15),$sayfa_sayisi),birdensuna(($page-10),$sayfa_sayisi) ,birdensuna(($page-5),$sayfa_sayisi),birdensuna(($page-2),$sayfa_sayisi) ,birdensuna(($page-1),$sayfa_sayisi),$page ,birdensuna(($page+1),$sayfa_sayisi),birdensuna(($page+2),$sayfa_sayisi) ,birdensuna(($page+5),$sayfa_sayisi),birdensuna(($page+10),$sayfa_sayisi) ,birdensuna(($page+15),$sayfa_sayisi),birdensuna(($page+20),$sayfa_sayisi));
    for ($i=$page;$i>0;$i=$i-$sayfalar_araligi) { $sayfalanacak[] = $i; }
    for ($i=$page;$i<$sayfa_sayisi;$i=$i+$sayfalar_araligi) { $sayfalanacak[] = $i; }
    $sayfalanacak = array_unique($sayfalanacak);
    sort($sayfalanacak);
    }
    $videolar = array('video'=>$video,'sayfalar'=>$sayfalanacak,'sayfa'=>$page,'toplam'=>ceil($nr2/$max));
    return $videolar;
    }
    
    ?>
  • 04-01-2013, 00:24:08
    #2
    yardımcı olacak kimse yok mu arkadaşlar
  • 04-01-2013, 14:41:07
    #3
    son haliyle kullanmak istediğiniz şekilde atar mısınız temiz bir halde
  • 04-01-2013, 14:46:06
    #4
    oophp adlı üyeden alıntı: mesajı görüntüle
    son haliyle kullanmak istediğiniz şekilde atar mısınız temiz bir halde
    Bu şekilde kullanmak istiyorum fakat //Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/user/public_html/function.php on line 15 hatasını veriyor.
    Önemli olan videolar ve videolars fonksiyonları gerisi sayfalama vs..
    <?
    function videolar($max=10,$page=1,$order='hit') {
    global $tp;
    $alt=($page - 1) * $max;
    $ix=1;
    $q = mysql_query("Select vid.*,vid.adi AS vidadi,vid.adi_s AS vidurl,vid.tarih,kg.id,kg.alt,kg.aciklama AS kgaciklama,kg.resim AS kgresim 
    from videolar AS vid INNER JOIN kategori AS kg ON(vid.kid=kg.id) where vid.aktif=1 order by vid.$order desc limit $alt,$max");
    $nr2 = mysql_num_rows(mysql_query("Select id from videolar where aktif=1"));
    while($rs=mysql_fetch_array($q)) {
    $video[] = array('adi'=>$rs['vidadi'],'adi_s'=>$rs['vidurl'],'aciklama'=>$rs['kgaciklama'],'resim'=>$rs['kgresim'],'hit'=>$rs['hit'],'puan'=>ortalama($rs['voteint'],$rs['vote']),'etiketler'=>parcala(",",$rs['etiketler']),'sure'=>$rs['sure'],'tarih'=>date("d.m.Y",$rs['tarih']),'i'=>$ix);
    $ix++;
    }
    if($nr2>$max){
    $sayfa_sayisi = ceil($nr2/$max); 
    if ( $page < 1 OR $page > $sayfa_sayisi ) { $page = 1; } 
    $sayfalar_araligi = ceil($sayfa_sayisi/12); 
    $sayfalanacak = array(1,$sayfa_sayisi,birdensuna(($page-20),$sayfa_sayisi) ,birdensuna(($page-15),$sayfa_sayisi),birdensuna(($page-10),$sayfa_sayisi) ,birdensuna(($page-5),$sayfa_sayisi),birdensuna(($page-2),$sayfa_sayisi) ,birdensuna(($page-1),$sayfa_sayisi),$page ,birdensuna(($page+1),$sayfa_sayisi),birdensuna(($page+2),$sayfa_sayisi) ,birdensuna(($page+5),$sayfa_sayisi),birdensuna(($page+10),$sayfa_sayisi) ,birdensuna(($page+15),$sayfa_sayisi),birdensuna(($page+20),$sayfa_sayisi)); 
    for ($i=$page;$i>0;$i=$i-$sayfalar_araligi) { $sayfalanacak[] = $i; } 
    for ($i=$page;$i<$sayfa_sayisi;$i=$i+$sayfalar_araligi) { $sayfalanacak[] = $i; } 
    $sayfalanacak = array_unique($sayfalanacak);
    sort($sayfalanacak); 
    }
    $videolar = array('video'=>$video,'sayfalar'=>$sayfalanacak,'sayfa'=>$page,'toplam'=>ceil($nr2/$max));
    return $videolar;
    }
    
    function videolars($max=10,$page=1,$order='hit',$ktg) {
    global $tp;
    $alt=($page - 1) * $max;
    $ix=1;
    $q = mysql_query("Select v.*,v.adi AS videoadi ,v.adi_s AS videourl,v.aciklama AS vaciklama,v.resim AS vresim,k.id,k.alt,k.resim AS kresim from 
    ".$tp."videolar AS v INNER JOIN ".$tp."kategori AS k ON(v.kid=k.id) where k.alt=$ktg and v.aktif=1 order by v.$order desc limit $alt,$max");
    $nr2 = mysql_num_rows($q);
    while($rs=mysql_fetch_array($q)) {
    $video[] = array('adi'=>$rs['videoadi'],'adi_s'=>$rs['videourl'],'aciklama'=>$rs['vaciklama'],'k_resim'=>adres($rs['kresim']),'hit'=>$rs['hit'],'puan'=>ortalama($rs['voteint'],$rs['vote']),'etiketler'=>parcala(",",$rs['etiketler']),'sure'=>$rs['sure'],'tarih'=>trtarih4($rs['tarih']),'i'=>$ix);
    $ix++;
    }
    
    if($nr2>$max){
    $sayfa_sayisi = ceil($nr2/$max);
    if ( $page < 1 OR $page > $sayfa_sayisi ) { $page = 1; }
    $sayfalar_araligi = ceil($sayfa_sayisi/12);
    $sayfalanacak = array(1,$sayfa_sayisi,birdensuna(($page-20),$sayfa_sayisi) ,birdensuna(($page-15),$sayfa_sayisi),birdensuna(($page-10),$sayfa_sayisi) ,birdensuna(($page-5),$sayfa_sayisi),birdensuna(($page-2),$sayfa_sayisi) ,birdensuna(($page-1),$sayfa_sayisi),$page ,birdensuna(($page+1),$sayfa_sayisi),birdensuna(($page+2),$sayfa_sayisi) ,birdensuna(($page+5),$sayfa_sayisi),birdensuna(($page+10),$sayfa_sayisi) ,birdensuna(($page+15),$sayfa_sayisi),birdensuna(($page+20),$sayfa_sayisi));
    for ($i=$page;$i>0;$i=$i-$sayfalar_araligi) { $sayfalanacak[] = $i; }
    for ($i=$page;$i<$sayfa_sayisi;$i=$i+$sayfalar_araligi) { $sayfalanacak[] = $i; }
    $sayfalanacak = array_unique($sayfalanacak);
    sort($sayfalanacak);
    }
    $videolar = array('video'=>$video,'sayfalar'=>$sayfalanacak,'sayfa'=>$page,'toplam'=>ceil($nr2/$max));
    return $videolar;
    }
    
    ?>
  • 04-01-2013, 15:04:39
    #5
    Mysql fetch array e veri dönmüyor.
    query leri echo yapıp bunları phpmyadmin den deneyebilir misiniz öncelikle.
  • 04-01-2013, 16:17:17
    #6
    oophp adlı üyeden alıntı: mesajı görüntüle
    Mysql fetch array e veri dönmüyor.
    query leri echo yapıp bunları phpmyadmin den deneyebilir misiniz öncelikle.
    $q = mysql_query("Select vid.*,vid.adi AS vidadi,vid.adi_s AS vidurl,vid.tarih,kg.id,kg.alt,kg.aciklama AS kgaciklama,kg.resim AS kgresim 
    from videolar AS vid INNER JOIN kategori AS kg ON(vid.kid=kg.id) where vid.aktif=1 order by vid.hit desc limit 0,2");
    $nr2 = mysql_num_rows(mysql_query("Select id from videolar where aktif=1"));
    while($rs=mysql_fetch_array($q)) {
    $video[] = array('adi'=>$rs['vidadi'],'adi_s'=>$rs['vidurl'],'aciklama'=>$rs['kgaciklama'],'resim'=>$rs['kgresim'],'i'=>$ix);
    $ix++;
    echo "".$rs['vidurl']."<br/>";
    } 
    
    $q = mysql_query("Select v.*,v.adi AS videoadi ,v.adi_s AS videourl,v.aciklama AS vaciklama,v.resim AS vresim,k.id,k.alt,k.resim AS kresim from 
    videolar AS v INNER JOIN kategori AS k ON(v.kid=k.id) where k.alt=$ktg and v.aktif=1 order by v.hit desc limit 0,2");
    $nr2 = mysql_num_rows($q);
    while($rs=mysql_fetch_array($q)) {
    $video[] = array('adi'=>$rs['videoadi'],'adi_s'=>$rs['videourl'],'aciklama'=>$rs['vaciklama'],'k_resim'=>$rs['kresim'],'hit'=>$rs['hit'],'i'=>$ix);
    $ix++;
    echo "".$rs['videourl']."<br/>";
    }
    bu şekilde bir düzenleme yaparak localde denedim.
    ilki çalıştı fakat ikincisi çalışmadı. nedeni sanırım where k.alt=$ktg
    $ktg bu değişkenin ne oldugunu çözemedim. diger fonksiyon dosyalarınada baktım bu sekilde tanımlı bir değişken yok.
    Bu kategori tablosu

    Bu da o kategoriye ait videonun bir tablo ornegi.yani videolar tablosu
  • 04-01-2013, 17:32:08
    #7
    o fonksiyona gönderiliyor fonksiyonun çağırıldığı yere nasıl geliyor ona bir bak
  • 04-01-2013, 22:30:52
    #8
    oophp adlı üyeden alıntı: mesajı görüntüle
    o fonksiyona gönderiliyor fonksiyonun çağırıldığı yere nasıl geliyor ona bir bak
    bulamadım fonksiyonun çağrıldıgı yerde smarty kullanılıyor.
    Sizce tahmini olarak hangi kolonla ilişkilidir. denedim bir çoğunu fakat tam olarak istediğim sonucu alamadım.
    Bu kategori tablosu

    Bu da o kategoriye ait videonun bir tablo ornegi.yani videolar tablosu


    sorun çözüldü konu kilitlenebilir.
    Çözüm: where vid.aktif=1 order by vid.$order desc limit $alt,$max");
    yerine sadece $order değişkenini yazdım sorunum çözüldü.