Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

fonkiyondaki değişkeni taşımak

Konu, 'PHP' kısmında Scorpion tarafından paylaşıldı.

  1. Scorpion

    Scorpion Daimi Üye

    Kayıt:
    17 Ekim 2002
    Mesajlar:
    962
    Beğenilen Mesajlar:
    0
    PHP:
    kontrol_kayit1("tablom","sutunum",$degerim);
        
        function 
    kontrol_kayit1 ($tablo,$sutun,$degisken)
    {
            
    $sorgu_kont="Select * from $tablo where $sutun='$degisken'";
            
    $sonuc mysql_query($sorgu_kont);
            
    $kayit mysql_num_rows($sonuc);
            
                if (
    $kayit == "0")
                    
                    {
                        
    $ekle "INSERT INTO $tablo ($sutun,hit) values ('$degisken','1')";
                        
    mysql_query($ekle);
                        
    $son_id=mysql_insert_id();
                        return 
    $son_id;
                    }
                else 
                    {
                        
    $arttir "update $tablo set hit=hit+1 where $sutun ='$degisken'";
                        
    $sonuc=mysql_query($arttir);
                        
    $sorgu="Select * From $tablo where $sutun='$degisken'";
                        
    $sonuc=mysql_query($sorgu);
                        
    $son_id=mysql_result $sonuc "id" );
                        return 
    $son_id;
                    }
                    
    }





    bu koddaki son_id değişkenini dışarı alıp başka bir tabloya kaydetmek istiyorum. Hitini arttırdığım tabloda $sonid'yi bulmak için tekrar sorgu yaptırdım.Acaba bunun da kısa bir yolu varmı?

    aklımdayken return 'u denemek için kullandım...
    Aslında bir iki fonksiyon inceledim ama bulamadım.Birde $this var onuda anlamadım ...


    Şimdiden teşekkürler..
     
  2. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    Return zaten değişkeni dışarı taşıyacaktır.
     
  3. Scorpion

    Scorpion Daimi Üye

    Kayıt:
    17 Ekim 2002
    Mesajlar:
    962
    Beğenilen Mesajlar:
    0
    bende bazı fonkiyonları inceledim.Return u o yüzden denedim .Ama çalışmadı..
    değişkeni dışarıda kullanmak istediğim zaman $son_id olarakmı kullanıcam..
     
  4. Elik

    Elik Üye

    Kayıt:
    30 Eylül 2002
    Mesajlar:
    33
    Beğenilen Mesajlar:
    0
    Fonksiyonun dışında tanımlanan bir değişkeni fonksiyon içine taşımak için "global" değeri kullanılır. Fonksiyon içinde tanımlanan değişkeni dışarı taşımak için ise "static" değeri kullanılır. Şu şekil;

     
  5. mkarabulut

    mkarabulut Misafir

    Genel program akışı içerisinde...
    Kod:
    $son_id = kontrol_kayitl ('tablon','sutunun',$degerin);
    
    (Not : $this'in bu konuyla pek bi ilgisi yok sanırm...)
     
  6. mkarabulut

    mkarabulut Misafir

    Static değişkenler global değişkenler gibi hafızada saklanırlar ama bir kapsam (scope ) farkı vardır.

    Static değişkenler her ne kadar global değişkenler gibi script boyunca hafızada kalsada sadece kapsam bölgeleri içinde hatırlanabilirler.

    Yani, sanırım, static değişkenlere fonksiyon dışında erişemezsin...

    (Eğer PHP motoru klasik static değişken tanımına bilmediğimiz bir yenilik getirmediyse tabi... )
     
  7. HunTER

    HunTER ...

    Kayıt:
    15 Ağustos 2002
    Mesajlar:
    8,684
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
    Benzer bır sorunla bende karsılastım.. Cozumu hakkında bıkac fıkrım var..

    Bırıncısı returnla dondurdugun degerı bır degıskene atamak durumundasın yanı :
    PHP:
    $son_id kontrol_kayit1("tablom","sutunum",$degerim);
    Seklınde.. Yok hayır bu cozum bana gore dııl dıyorsan fonksıyon ıcınde $son_id degıskenını global olarak belırleyebılırsın:
    PHP:
    function kontrol_kayit1 ($tablo,$sutun,$degisken)
    {
    global 
    $son_id;
    ...
    }
    Benım yaptıgım denemelerde fonksıyonu kodun neresınde yazdıgında onem arzedıyordu ama sımdı karıstırmayayım sen bunları bı dene olmassa bakarız..
     
  8. Scorpion

    Scorpion Daimi Üye

    Kayıt:
    17 Ekim 2002
    Mesajlar:
    962
    Beğenilen Mesajlar:
    0
    arkadaşlar saolun yardımlarınız için problemi düzelttim .Ama nasıl yaptın diye sormayın .Return ile çalıştı bu sefer bende anlamadım.


    Bu arada şu $this nedir ki?
     
  9. mkarabulut

    mkarabulut Misafir