t.i.rony
t.i.rony

Reputation: 51

PHP basic: why my variable showing wrong value?

I am new to PHP. I am trying to create a simple form where user will submit there name and mark they got in the exam.

<form action="" method="post">
        <input type="text" name="name" id="" placeholder="Your name">
        <input type="number" name="mark" id="" placeholder="Your Mark">
        <input type="submit" name="submit" value="Submit">
</form>


    <?php

        if(isset($_POST["submit"])){

            $name = $_POST['name'] ;
            $mark = $_POST['mark'];



            if( $mark > 80 ){

                $result = "A+";

            }elseif($mark > 70 && $mark < 80){

                $result = "A"; 
            }
            elseif($mark > 60 && $mark < 70){

                $result = "A-"; 
            }
            elseif($mark > 40 && $mark < 60){

                $result = "B"; 
            }else{
               $result = "Fail";  

            }

            echo $result;

        }


    ?>

But if I echo the result variable it is always showing 'Fail'. What is I am doing wrong? thanks

Upvotes: 1

Views: 219

Answers (1)

d.raev
d.raev

Reputation: 9556

As mentioned in the comments, when comparing ranges, you need to consider the corner cases:
$mark >= 70 && $mark < 80

Also there are few ways to simplify your code: If you check for marsk >= 80 in the first IF, there is no need to check for that in the next elseif:

        if( $mark >= 80 )
        {
            $result = "A+";
        }
        elseif($mark >= 70)
        {
            $result = "A"; 
        }
        elseif($mark >= 60)
        {
            $result = "A-"; 
        }
        elseif($mark >= 40)
        {
            $result = "B"; 
        }
        else
        {
           $result = "Fail";  
        }

        echo $result;

Upvotes: 1

Related Questions