• 09-03-2010, 18:33:36
    #1
    <? if($cevap1=="Boş"){ $b1="1"; } elseif ($cevap1==$anahtar1){ $d1="1"; } else{$y1="1"; } ?>
    <? if($cevap2=="Boş"){ $b2="1"; } elseif ($cevap2==$anahtar2){ $d2="1"; } else{$y2="1"; } ?>
    <? if($cevap3=="Boş"){ $b3="1"; } elseif ($cevap3==$anahtar3){ $d3="1"; } else{$y3="1"; } ?>
    <? if($cevap4=="Boş"){ $b4="1"; } elseif ($cevap4==$anahtar4){ $d4="1"; } else{$y4="1"; } ?>
    <? if($cevap5=="Boş"){ $b5="1"; } elseif ($cevap5==$anahtar5){ $d5="1"; } else{$y5="1"; } ?>
    <? if($cevap6=="Boş"){ $b6="1"; } elseif ($cevap6==$anahtar6){ $d6="1"; } else{$y6="1"; } ?>
    <? if($cevap7=="Boş"){ $b7="1"; } elseif ($cevap7==$anahtar7){ $d7="1"; } else{$y7="1"; }?>
    <? if($cevap8=="Boş"){ $b8="1"; } elseif ($cevap8==$anahtar8){ $d8="1"; } else{$y8="1"; } ?>
    <? if($cevap9=="Boş"){ $b9="1"; } elseif ($cevap9==$anahtar9){ $d9="1"; } else{$y9="1"; } ?>
    <? if($cevap10=="Boş"){ $b10="1"; } elseif ($cevap10==$anahtar10){ $d10="1"; } else{$y10="1"; } ?>
    <? if($cevap11=="Boş"){ $b11="1"; } elseif ($cevap11==$anahtar11){ $d11="1"; } else{$y11="1"; } ?>
    <? if($cevap12=="Boş"){ $b12="1"; } elseif ($cevap12==$anahtar12){ $d12="1"; } else{$y12="1"; } ?>
    <? if($cevap13=="Boş"){ $b13="1"; } elseif ($cevap13==$anahtar13){ $d13="1"; } else{$y13="1"; } ?>
    <? if($cevap14=="Boş"){ $b14="1"; } elseif ($cevap14==$anahtar14){ $d14="1"; } else{$y14="1"; } ?>
    <? if($cevap15=="Boş"){ $b15="1"; } elseif ($cevap15==$anahtar15){ $d15="1"; } else{$y15="1"; } ?>
    <? if($cevap16=="Boş"){ $b16="1"; } elseif ($cevap16==$anahtar16){ $d16="1"; } else{$y16="1"; } ?>
    <? if($cevap17=="Boş"){ $b17="1"; } elseif ($cevap17==$anahtar17){ $d17="1"; } else{$y17="1"; } ?>
    <? if($cevap18=="Boş"){ $b18="1"; } elseif ($cevap18==$anahtar18){ $d18="1"; } else{$y18="1"; } ?>
    <? if($cevap19=="Boş"){ $b19="1"; } elseif ($cevap19==$anahtar19){ $d19="1"; } else{$y19="1"; } ?>
    <? if($cevap20=="Boş"){ $b20="1"; } elseif ($cevap20==$anahtar20){ $d20="1"; } else{$y20="1"; } ?>
    Arkadaşlar yukardakini naısll kısaltabilirim?
    Fonksiyon mu?While mı?Case mi?Ya da başka bişe mi?
    Yardımcı olabilir misiniz?
  • 09-03-2010, 18:46:19
    #2
    yapmak istediğin nedir bilmiyorum ama for ile yapabilirsin mesela

    for($i=1;$i<=20;$i++)
       {
          if($cevap$i=="Boş")
            { 
               $b$i="1"; 
            }
          elseif ($cevap$i==$anahtar$i)
            { 
               $d$i="1"; 
            } 
          else
            {
          $y$i="1"; 
            }
       }
    while ile de yapabilirsin

    $i=0;
    while($i<=20)
    {
          if($cevap$i=="Boş")
            { 
               $b$i="1"; 
            }
          elseif ($cevap$i==$anahtar$i)
            { 
               $d$i="1"; 
            } 
          else
            {
          $y$i="1"; 
            }
    $i=$i+1;
    }

    inşallah işine yarar

    kodları deneme şansım olmadı ama sorun çıkacağını sanmıyorum
  • 09-03-2010, 19:09:39
    #3
    for lu olanı yazdığımda hata aldım.(while olanda da aynı hatayı aldım)

    Parse error: syntax error, unexpected T_VARIABLE in ........... hatası aldım
    Hatanın olduğu satırı
      if($cevap$i=="Boş")
    burası olarak gösteriyor.Acaba bu değişkenlerin kullanımında ne gibi bir hata olabilir ki.

    Bu ara çok teşekkürler.
  • 09-03-2010, 19:50:00
    #4
    for($i=1;$i<=20;$i++)
       {
          if($cevap . $i=="Bos")
            { 
               $b . $i="1"; 
            }
          elseif ($cevap . $i==$anahtar . $i)
            { 
               $d . $i="1"; 
            } 
          else
            {
          $y . $i="1"; 
            }
       }
  • 09-03-2010, 20:22:24
    #5
    Bu sanırım çalıştı ama işlem 30 saniyeden fazla sürdüğü için şu hatayı verdi.
    "Maximum execution time of 30 seconds exceeded " hatası verdi.Benim amacım sitedeki kod yığınını azaltıp biraz olsun hızlandırmaktı ama daha çok yavaşladı aslında 20 tane veriyi döndürmek bu kadar zaman almaması gerekiyor.Acaba kodun bir yerlerinde sonsuza götüren bir döngü mü oldu? Bi bakabilir misniz? Gözden kaçan bir şeyler var mı?
  • 09-03-2010, 21:12:11
    #6
    neden sonsuz döngü oluyordur sizce arkadaşlar.
  • 09-03-2010, 21:22:35
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşım süre aşımı olması normal, çünkü:
    <?php
    $b . $i="1";
    ?>
    gibi bir kullanımda, $i değişkeni 1 değerini alır ve sonsuz döngüye girer. Değişken > değişken oluşturmak için şu şekilde yapman gerekir:

    <?php
    for($i=1;$i<=20;$i++){
      if(${'cevap'.$i}== 'Boş') ${'b'.$i}="1";      
      elseif (${'cevap'.$i}== ${'anahtar'.$i}) ${'d'.$i}="1"; 
      else  ${'y'.$i}="1"; 
    }  
    ?>
    Ayrıca bu şekilde bir kullanım yerine, direk doğru yanlış boş olarak kullansan daha iyi olmaz mı ? Yani şunun gibi diyelim 20 soru ise :

    <?php
    for($i=1;$i<=20;$i++){ 
      if($_POST['cevap'.$i]== 'Boş') $soru[$i]='B';      
      elseif ($_POST['cevap'.$i]== $anahtar[$i]) $soru[$i]='D'; 
      else  $soru[$i] = 'Y';
    }   
    ?>
  • 09-03-2010, 21:34:19
    #8
    metadige teşekkürler.
    ikinci dediğinde haklısın ama toplam dogru ve toplam yanlışı saydırmam gerektiği için dogru ise 1 değerini verdirip sonra tüm bunları toplatarak toplam doğrusnu buluyorum.Ama post verisini direk kullanmak konusunda haklısın.