我想使用switch值插入值。

时间:2018-05-16 13:51:52

标签: php

我尝试解决问题但失败了。我想输入一个数字然后我想通过' 切换'来改变它。像80 = A +。但我不能。请帮助我,非常感谢。

<form method="post" action=" " >

            <table width="400" align="center">

                <tr><td>     Marks <td><input type="text" name="marks"></td></tr>

                <tr><td>      Click on the Button <td><input  type="submit" value="Submit"></td></tr>
            </table>

        </form>



      <?php 

      $servername = "localhost"; 
      $username = "root"; 
      $password = ""; 
      $dbname = "zidm"; 
      $conn = mysqli_connect($servername, $username, $password, $dbname);

    $marks=$_POST['marks'];


     $marks = switch ($marks) {
        case ($marks>"50"):
            echo "B";
            break;

        default:
            echo "C";
            break;
     }

    $sql="INSERT INTO profile (id, name) VALUES ('', '$marks')";
    mysqli_query($conn, $sql);

     ?>

2 个答案:

答案 0 :(得分:3)

这不是交换机的工作方式。

Switch不会返回任何内容。它就像if-else一样,它根据匹配值执行代码块。

此外,你不能对子句进行条件操作(除非切换的表达式是布尔值)。

我认为你应该简单地使用if-elses,或者只使用三元:

$marks = $_POST['marks'];

$marks = ($marks > 50) ? 'B' : 'C';

答案 1 :(得分:-1)

$marks = $_POST['marks'];

之后执行此操作
switch (true) {
    case ($marks > "50"):
        $marks = "B";
        break;
    default:
        $marks = "C";
        break;
 }

我在开关区内编辑了条件,因为我的原始答案包含错误的答案。您可以在switch中存储多个条件,并使用if-else-else-else...替换switch (true)链条以及要在每个case中检入的条件。