• 08-11-2009, 16:07:54
    #1
    Eposta Aktivasyonu Gerekmekte
    Normalde work fonksiyonundaki kodları fonksiyonun dışına aldığımda, sayfayı her yenileyişimde işlevini görüyor. Ancak fonksiyon içerisindeyken ne yaptıysam çalıştıramadım.

    function main()
    {
    	echo '<form action="', $PHP_SELF, '" method="post">
    	<input type="submit" name="work" value="Çalış" />
    </form><br />
    <a href="', $_SERVER['SCRIPT_NAME'], '?action=home">Eve dön</a>';
    
    	if($_POST['work'])
    	{
    		work();
    	}
    
    }
    
    function work()
    {
    	$em['look_at_him'] = mysql_query('SELECT `money` FROM `user` WHERE `username`=\'' . $_COOKIE[$cookie['username']] . '\'');
    
    	while($his = mysql_fetch_assoc($em['look_at_him']))
    	{
    		$em['salary'] = rand(50, 100);
    		$em['his_new_money'] = ($his['money'] + $em['salary']);
    		mysql_query('UPDATE `user` SET `money`=\'' . $em['his_new_money'] . '\' WHERE `username`=\'' . $_COOKIE[$cookie['username']] . '\'');
    		
    		echo 'İşyerinden ', $em['salary'], ' lira aldınız. Şuan ', $em['his_new_money'], ' liranız var.';
    	}
    }
  • 08-11-2009, 16:47:52
    #2
    Üyeliği durduruldu
    work($em);

    olarak kullanmanız gerekiyor... $em değişkenini alamadıgı için çalışmıyordur.. tahminimce..
  • 08-11-2009, 16:53:17
    #3
    Eposta Aktivasyonu Gerekmekte
    Denedim olmadı. Zaten $em değişkenini dışarıdan almıyorum, fonksiyonun içinde kendim tanımlıyorum. Sanırım sorun bu değil.
  • 08-11-2009, 17:04:07
    #4
    fonksiyonlar içinde sql çalıştırmaya kaltığımda bende de bi sorun oluşmuştu. ama nedenini aramadım dışarda çalıştırdım kodu öyle hallettim sorunu.. acaba fonksiyon içindeyken db e mi bağlanamıyor bende merak ediyorum..
  • 08-11-2009, 17:05:59
    #5
    Eposta Aktivasyonu Gerekmekte
    Akadal34, sen kahin misin hocam ya! Fonksiyonun içine connection.php'yi include ettim, şak diye oldu. Çok teşekkürler hocam!
  • 08-11-2009, 17:07:35
    #6
    güzel oldu bunun çözülmesi artık bende her sql li fonksiyonuma db bağlantısı koyarım
  • 08-11-2009, 17:26:26
    #7
    Üyeliği durduruldu
    Sayfanın başında mysql'e bağlanıyorsanız bu şekilde kullanım peformansını etkileyecektir.

    mysql_baglan();
    //işlemler işlemler işlemler
    work(); //fonksiyonu çalıştırdıgınızda zaten bağlanılan mysql'e tekrar bağlanacaktır buda boşuna performans kaybı demek.
    onun yerine fonksiyonun içinde "global $em;" kullanırsanız sanırım sorun çözülecektir.
  • 08-11-2009, 17:28:51
    #8
    fonksiyonun içine en başa global $cookie; ekleyerek denermisiniz
  • 08-11-2009, 17:50:33
    #9
    Eposta Aktivasyonu Gerekmekte
    global kodu aklıma gelmemişti, halbuki çok kullanırım ben bunu. Teşekkürler.