İki Dizideki Elemanları Tek Tek karşılaştırmak.

miniz_12İzzet Minber

Selamlar. Php yi yeni öğreniyorum ve iki gündür içinden çıkamadığım bir soru var. Yardım edenlere şimdiden teşekkürler.

<?
$anahtar1 = "a";
$anahtar2 = "b";
$anahtar3 = "c";
$anahtar4 = "d";
$anahtar5 = "c";


$cevap1 = "a";
$cevap2 = "b";
$cevap3 = "";
$cevap4 = "b";
$cevap5 = "c";


$cevaplar = array ($anahtar1, $anahtar2, $anahtar3, $anahtar4, $anahtar5);
   
$sorular = array ($cevap1, $cevap2, $cevap3, $cevap4, $cevap5);

?>

Bu şekilde anahtar ve cevap değişkenlerini iki diziye atadım ve bunları karşılaştırmak istiyorum. Yani bir döngü oluşturup sırayla anahtar1 değerini cevap1 değeriyle ... karşılaştırıp ekrana ;

cevap1: doğru.

cevap2: doğru.

cevap3: Boş.

cevap4: Yanlış.

cevap5: Doğru.

şeklinde yazdırmak istedim ama başaramadım.


for ($sayac = 0 ; $sayac < count($sorular) ; $sayac++ ) { if ($sorular == $cevaplar) { echo "Sonuç DOĞRU
"; } elseif ($sorular == null) { echo "Cevap BOŞ
"; } else { echo "Cevap YANLIŞ
"; } }

Ben yukardakini yaptığımda a,b,c,d eşleştirmelerinin hepsini doğru yaptığımda ekrana :

Sonuç DOĞRU
Sonuç DOĞRU
Sonuç DOĞRU
Sonuç DOĞRU
Sonuç DOĞRU

yazıyor. Ama sadece bi değerini mesela cevap3 değerini farklı yaptığımda ise diğerleri doğru olmasına rağmen ekrana hepsini Sonuç YANLIŞ. yazıyor.

Çokçada araştırdım ama çıkamadım işin içinden.

2013-04-13 16:22:24 Edit:2013-04-13 16:23:58

Php

$sorular=array();

$cevaplar=array();

$sorutoplam=count($sorular);

for($i=0;$i<$sorutoplam;$i++){

if($sorular[$i]==$cevaplar[$i]){

echo "sonuc dogru <br/>";

}else if ($sorular[$i]!=$cevaplar[$i]){

echo "sonuc yanlış<br/>";

}elseif( $sorular[$i] && is_null($cevaplar[$i])){

echo"sonuc bos birakılmıs <br/>";

}

}

}

2013-04-13 17:33:23 Edit:2013-04-13 17:58:05

Php

miniz_12İzzet Minber

Yardımın için gerçektende çok sağol bozkurtmanas. Düşünce olarak çok tardımı oldu. Ancak boş bıraktığımdada yanlış değeri döndürdü. Bende benim verdiğim kod sırasına göre senin verdiğin kodları birleştirip yaptım. Baya bi uğraştım ama oldu. Bunu başarmak gerçektende insana zevk veriyor. Çok sağolasın

2013-04-13 18:44:37

Php

miniz_12İzzet Minber

Hocam bu sonuç ne yazıkki olmadı. Değişik yöntemlrde denedim. radio butonlardan gelen cevapları $cevap değişkenlerine atıyorum $cevap1 = $_POST['question1']; şeklinde. Ancak radio butonlardaki değerler boş olunca

Notice: Undefined index: question18 in C:\xampp\htdocs\deneme\deneme.php on line 51

şeklinde hata veriyor. Boş olanları hatasız bir şekilde nasıl sonuç BOŞ şeklinde yazdırabiliriz?

2013-04-13 21:08:10 Edit:2013-04-13 21:58:13

Php

TeaMTurkeRŞenol TÜRKER

şuan'ki kodlarınızı paylaşırmısınız

2013-04-13 21:46:33

php

miniz_12İzzet Minber

BU şekilde:

Formdaki boş bıraktığım her soru için hata veriyor.

<?
$anahtar1 =  "a";
$anahtar2 =  "b";
$anahtar3 =  "c";
$anahtar4 =  "c";
$anahtar5 =  "c";
$anahtar6 =  "c";
$anahtar7 =  "c";
$anahtar8 =  "c";
$anahtar9 =  "c";
$anahtar10 = "c";
$anahtar11 = "c";
$anahtar12 = "c";
$anahtar13 = "c";
$anahtar14 = "c";
$anahtar15 = "c";
$anahtar16 = "c";
$anahtar17 = "c";
$anahtar18 = "c";
$anahtar19 = "c";
$anahtar20 = "c";




$cevap1 = $_POST['question1'];
$cevap2 = $_POST['question2'];
$cevap3 = $_POST['question3'];
$cevap4 = $_POST['question4'];
$cevap5 = $_POST['question5'];
$cevap6 = $_POST['question6'];
$cevap7 = $_POST['question7'];
$cevap8 = $_POST['question8'];
$cevap9 = $_POST['question9'];
$cevap10 = $_POST['question10'];
$cevap11 = $_POST['question11'];
$cevap12 = $_POST['question12'];
$cevap13 = $_POST['question13'];
$cevap14 = $_POST['question14'];
$cevap15 = $_POST['question15'];
$cevap16 = $_POST['question16'];
$cevap17 = $_POST['question17'];
$cevap18 = $_POST['question18'];
$cevap19 = $_POST['question19'];
$cevap20 = $_POST['question20'];



$cevaplar = array ($anahtar1, $anahtar2, $anahtar3, $anahtar4, $anahtar5, $anahtar6, $anahtar7, $anahtar8, $anahtar9, $anahtar10, $anahtar11, $anahtar12, $anahtar13, $anahtar14, $anahtar15, $anahtar16, $anahtar17, $anahtar18, $anahtar19, $anahtar20);
   
$sorular = array ($cevap1, $cevap2, $cevap3, $cevap4, $cevap5, $cevap6, $cevap7, $cevap8, $cevap9, $cevap10, $cevap11, $cevap12, $cevap13, $cevap14, $cevap15, $cevap16, $cevap17, $cevap18, $cevap19, $cevap20);

$sorutoplam = count($sorular);

    for($i=0 ; $i<$sorutoplam ; $i++)
    {
            if($sorular[$i] == $cevaplar[$i])
            {
    echo "Sonuç DOĞRU <br/>";
            }
           
            else if ( empty ($sorular[$i]) )
            {
            echo "Sonuç BOŞ<br/>";
            }
           
            else
            {
            echo "Sonuç YANLIŞ<br/>";
            }
       
   
    }



2013-04-13 22:00:38 Edit:2013-04-13 23:00:10

Edit:

Php

TeaMTurkeRŞenol TÜRKER

<form action="" method="POST">
<div>Soru 1:
<input type="checkbox" name="question1" value="a"/>a
<input type="checkbox" name="question1" value="b"/>b
<input type="checkbox" name="question1" value="c"/>c
</div>
<div>Soru 2:
<input type="checkbox" name="question2" value="a"/>a
<input type="checkbox" name="question2" value="b"/>b
<input type="checkbox" name="question2" value="c"/>c
</div>
<div>Soru 3:
<input type="checkbox" name="question3" value="a"/>a
<input type="checkbox" name="question3" value="b"/>b
<input type="checkbox" name="question3" value="c"/>c
</div>
<div><input type="submit" value="Kontrol Et" name="kontrol"/></div>
</form>
<?php
$anahtar1 =  "a";
$anahtar2 =  "b";
$anahtar3 =  "c";
if($_POST):
$cevap1 = $_POST['question1'];
$cevap2 = $_POST['question2'];
$cevap3 = $_POST['question3'];
$cevaplar = array ($anahtar1, $anahtar2, $anahtar3);
    
$sorular = array ($cevap1, $cevap2, $cevap3);
$sorutoplam = count($sorular);
for($i=0 ; $i<$sorutoplam ; $i++){
    if($sorular[$i] == $cevaplar[$i]){
echo "Sonuç DOĞRU <br/>";
    }elseif( empty ($sorular[$i])){
        echo "Sonuç BOŞ<br/>";
    }else{
         echo "Sonuç YANLIŞ<br/>";
    }
}
endif;
?>
2013-04-13 22:46:28

miniz_12İzzet Minber

Ne yazıkki olmadı sonuç aynı. Boş bıraktığım soru için hata veriyor. Ekrana Sonuç BOŞ yazıyor ama Notice: Undefined index: question3 in C:\xampp\htdocs\deneme\test2.php on line 35 hatasını veriyor.

2013-04-13 23:26:26

Edit:

Php

TeaMTurkeRŞenol TÜRKER

php tagından sonra şunu ekleyin error_reporting(0);

2013-04-14 00:12:30

Php

radio butonu degeri bos oldugu icin bu hatayı veriyor  sebebi bu isset fonksiyonu ile duzeltebilirsin 

if(isset($_POST['question1'])||isset($_POST['question2'])||isset($_POST['question3'])){ $cevap1=$_POST['question1'];$cevap2=$_POST['question2'];$cevap3=$_POST['question3'];

} post   verilerinden hemen sonra bu kodu ekle bir daha  o hatayı almazsın

2013-04-14 12:20:55

phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro