• 03-08-2009, 18:12:20
    #1
    Merhaba Arkadaşlar;
    Sorunun cevabını epey aradım ancak bulamadım. Muhakkak kolay birşey ancak göremediğin zaman göremiyorsun. Şimdiden cevap veren arkadaşlara teşekkürler...
    basit bir yönetim paneli yapmaya çalışıyorum. (Class' ile)
    	$sistem['sql_kullanici']	= 'sistemdeneme';
    ile ayar.php de tanımlanmış bir değeri class ımın içindeki funtion'da direk kullanabilmek istiyorum. mysql bağlantı yaparken sadece kullanıcı kısmında hata veriyor. Diğer kısımlarda nedense çalışıyor.
    Diğer sorumda aynı class içerisindeki bir değeri diğer class'da kullanamıyorum.


    <kd>Sinuzitim 2 gündür devam ediyor. Lütfen bunlar çok kolay demeyin, kafa çalışmayınca çalışmıyor.</kd>
  • 03-08-2009, 18:13:04
    #2
    Üyeliği durduruldu
    fonksiyonda disarda tanimli olan değişkeni kullanmak için global ifadesini kullaniyor musunuz?
  • 03-08-2009, 18:22:39
    #3
    class ta bu yazılı şu an
    <?class sistemx{
    		function vtbaglan() {
    			$dbbaglan = mysql_connect($sistem['sql_host'], "sistemkullanici","112233"); //deger olarak algilamadi
    			mysql_select_db("vtsistem",$dbbaglan);
    		}
    ?>
    ayar.php de ise şu
    	$sistem['sql_surucu']	= 'mysql';
    	$sistem['sql_host']		= 'localhost';
    	$sistem['sql_vt']		= 'vtsistem';
    	$sistem['sql_kullanici']	= 'sistemkullanici';
    	$sistem['sql_pass']		= '112233';
    yazılı, konuyu açarken ilk aklıma geldiniz cevap verecek kişi olarak,
    benim isteğim sistemde atanan değeri class da istediğim yerde kullanabilmek
    aynı şekil functiondada çıkan bir sorguyu başka bir sorguda gösterebilmek
    misal geçerli sayfa için birinde bulundugu yeri belirlerken, diğerinde bunun değerini kullanabilmek

    edit: global çalıştı, teşekkürler
  • 03-08-2009, 18:30:03
    #4
    Constant tipinde değişkenleri tanımlarsan her yerden erişebilirsin
    fonksiyon içinde değişkenleri tanımlarsan yada parametre olarak gönderirsen kullanabilirsin
    Sorunun cevabı ise şu şekilde
    define("sql_surucu","mysql");
    by şekilde tanımladıktan sonra sayfanın en üstünde bir yerlerde
    echo sql_surucu;
    gibi erişebilirsin dikkat et $ işareti yok sadece düz ismini yazdımi, fonksiyon veya class içlerindede böyle kullanabilirsin
    php.net de define diye arattırsan bir çok kod örneği gelecektir
  • 03-08-2009, 18:30:56
    #5
    <?class sistemx{
    function vtbaglan() {
    global $sistem;
    $dbbaglan = mysql_connect($sistem['sql_host'], "sistemkullanici","112233"); //deger olarak algilamadi
    mysql_select_db("vtsistem",$dbbaglan);
    }
    ?>
  • 03-08-2009, 18:33:36
    #6
    redbaron adlı üyeden alıntı: mesajı görüntüle
    Constant tipinde değişkenleri tanımlarsan her yerden erişebilirsin
    fonksiyon içinde değişkenleri tanımlarsan yada parametre olarak gönderirsen kullanabilirsin
    Sorunun cevabı ise şu şekilde
    define("sql_surucu","mysql");
    by şekilde tanımladıktan sonra sayfanın en üstünde bir yerlerde
    echo sql_surucu;
    gibi erişebilirsin dikkat et $ işareti yok sadece düz ismini yazdımi, fonksiyon veya class içlerindede böyle kullanabilirsin
    php.net de define diye arattırsan bir çok kod örneği gelecektir
    hocam bende o şekil kullanıyorum normalde ancak bunda hepsi tek yerde tanımlı oldugu için takibini yapmak kolay oluyor. Bu çekirdek gibi olacak, ondan dolayı bir daha şablon eklerken çakışma olabilir diye bu şekil kullanmak istedim. yinede teşekkürler
  • 03-08-2009, 19:07:20
    #7
    Üyeliği durduruldu
    böyle bir kod yazıyorsan global la alıyorsan falan hiç obje ye yönelik class ile kod yazmana gerek yok ama oop un amacı db bağlantısı mı evet db bağlantısı o zaman tüm işlerini oradan halledeceksin diğer yerlerde kalabalığı bağlantısı olmayacak db kısmı diğer kodlardan ayrılmış sade halde olacaksen db bilgilerini ayrı bir yer de bağlantı class ını ayrı bir yerde senin yaptığına verecek çok örnek deyim var dır ama aklıma gelmedi

    onun yerine tüm değişkenleri class içine atıp bağlantı yapmadanönce set edebilirsin
    yada __construct ile alırsn değerleri

    <?php
    class db{
    private $sunucu;
    private $kullanici;
    private $sifre;
    private $vt;
    private $baglanti;
    function __construct($a,$b,$c,$d) {
    $this->sunucu = $a;
    $this->kullanici = $b;
    $this->sifre = $c);
    $this->vt = $d;
    $this->baglanti = mysql_connect($this->sunucu,$this->kullanici,$this->sifre);
    mysql_select_db($this->vt,$this->baglanti);
    }
    }
    ?>
    $db = new db('host','user','pass','vt');
    gibi kullanırsın
    exception ları yada db atamalarını construct ta değil de alt aşamalarda da verebilrisin daha temiz kodlar olsun dersen
  • 03-08-2009, 19:18:42
    #8
    Eposta Aktivasyonu Gerekmekte
    konu açılmışken bende soriyim dedim class öğrenmeye çalışıyorumda tam anlayamadım işi.
    class tarih {
    	public $saat;
    	public $tarih;
    	  function trtarih($a233) {
    	 	$trtarih=array(01=>"Ocak",02=>"Şubat",03=>"Mart",04=>"Nisan",05=>"Mayıs",06=>"Haziran",07=>"Temmuz",08=>"Ağustos",09=>"Eylül",10=>"Ekim",11=>"Kasım",12=>"Aralık");
    	 	return $trtarih[$a233];
    	 }
    	 function trhaftagunu($a234){
    	 	$trhafta=array("Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi");
    	 	return $trhafta[$a234];
    	 }
    	 function tarihh()
    	 {
    	  $tarihh=date("m");
    	  return trtarih($tarihh);
    	 }
    }
    şöyle bi class yazdım.
    <?php
    $ax=new tarih();
    echo $ax->tarihh();
    ?>
    bu şekilde kullanmaya çalışıyorum.
    trtarih() fonksiyonunun olmadığını söylüyor.
  • 03-08-2009, 19:23:24
    #9
    senin dediğin gibi yapmayı deneceğim birde, deyime girince "elin globali ile gerdeğe girmek" deyimi aklıma geliyor. birde bu db deki değişkeni $db->sunucu ile kullanabilirim değilmi ( ne dedim ben ), bu arada exception'ları en sona ayarlamayı düşünüyorum böylece kodu 2 kere gezmiş olacağım.