• 23-07-2010, 12:17:14
    #1
    PHP ile basit oyunlar merakı sardı beni hem kodlarımı inceleyin hemde gördügünüz gibi burda çok sql sorgusu yaptım bunu en aza indirmek için mysql group by yada join kullanımı olsa nasıl olur acaba

    <?php 
    
    	$sql = mysql_fetch_array(mysql_query("SELECT * FROM zar WHERE adi='pc'"));
        if($sql['durumu']<1){
    		echo 'YETERLİ KREDİNİZ YOK';
    		}else{
    
    echo '------BİLGİSAYAR-----<br>';
    $pa = rand(1,6);
    $pb = rand(1,6);
    echo '<img src='."$pa".'.png'.'>';
    echo '<img src='."$pb".'.png'.'><br>';
    }
    echo '--------SEN---------<br>';
    $sa = rand(1,6);
    $sb = rand(1,6);
    echo '<img src='."$sa".'.png'.'>';
    echo '<img src='."$sb".'.png'.'><br>';
    
    if($pa+$pb>$sa+$sb){
    	echo '<b>BİLGİSAYAR KAZANDI</b><br>';
    	}else{
    		echo '<b>SEN KAZANDIN</b><br>';
    		}
    		
    echo '--------- PUANLAR ----------<br>';
    echo '--------- PC ----------<br>';
    if($pa+$pb<$sa+$sb){
    	$sql = mysql_fetch_array(mysql_query("SELECT * FROM zar WHERE adi='pc'"));
    	$son = --$sql['parasi'];
    	$dusur = mysql_query("UPDATE zar SET parasi='$son' WHERE adi='pc'");
    	}else{
    	$sql = mysql_fetch_array(mysql_query("SELECT * FROM zar WHERE adi='pc'"));
    	$son = ++$sql['parasi'];
    	$dusur = mysql_query("UPDATE zar SET parasi='$son' WHERE adi='pc'");
    	}
    	$sql = mysql_fetch_array(mysql_query("SELECT * FROM zar WHERE adi='pc'"));
    	echo '<b>'.$sql['parasi'].'</b><br>';
    
    echo '--------- SEN ----------<br>';
    if($sa+$sb<$pa+$pb){
    	$sql = mysql_fetch_array(mysql_query("SELECT * FROM zar WHERE adi='ben'"));
    	$son = --$sql['parasi'];
    	$dusur = mysql_query("UPDATE zar SET parasi='$son' WHERE adi='ben'");
    	}else{
    	$sql = mysql_fetch_array(mysql_query("SELECT * FROM zar WHERE adi='ben'"));
    	$son = ++$sql['parasi'];
    	$dusur = mysql_query("UPDATE zar SET parasi='$son' WHERE adi='ben'");
    	}
    	$sql = mysql_fetch_array(mysql_query("SELECT * FROM zar WHERE adi='ben'"));
    	echo '<b>'.$sql['parasi'].'</b><br>';
    
    ?>
    sql
    CREATE TABLE IF NOT EXISTS `zar` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `adi` varchar(11) NOT NULL,
      `parasi` int(11) NOT NULL,
      `durumu` int(1) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
    
    --
    -- Tablo döküm verisi `zar`
    --
    
    INSERT INTO `zar` (`id`, `adi`, `parasi`, `durumu`) VALUES
    (1, 'ben', 46, 1),
    (2, 'pc', 42, 1);
  • 23-07-2010, 12:35:50
    #2
    Bu kadar çok sorguyu ve kontrolü php tarafında yapmak performans olarak kötü sonuç verebilir. Stored Procedure yazarak tüm kontrolleri ve işlemleri mysql tarafında yapmanız daha sağlıklı olacaktır.

    https://www.r10.net/1061307643-post54.html şu adreste bir örnek paylaşmıştım.
  • 23-07-2010, 12:45:09
    #3
    if($pa+$pb>$sa+$sb){
        echo '<b>BİLGİSAYAR KAZANDI</b><br>';
    }else{
         echo '<b>SEN KAZANDIN</b><br>';
    }
    attıgımız zarların toplamı eşitse neden ben kazanıyorum.
  • 23-07-2010, 13:01:26
    #4
    OfisSoft adlı üyeden alıntı: mesajı görüntüle
    Bu kadar çok sorguyu ve kontrolü php tarafında yapmak performans olarak kötü sonuç verebilir. Stored Procedure yazarak tüm kontrolleri ve işlemleri mysql tarafında yapmanız daha sağlıklı olacaktır.

    https://www.r10.net/1061307643-post54.html şu adreste bir örnek paylaşmıştım.
    tşk ederim inceleyim