elseif无法按预期在php中工作

smdncfj3  于 2021-06-23  发布在  Mysql
关注(0)|答案(3)|浏览(252)

这个问题在这里已经有答案了

3个不同的等式(5个答案)
两年前关门了。

<?php

$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "test_db";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

//check radio button and update sql accordingly

if (isset($_GET['calc'])) {

$calc = $_GET['calc'];
}

if ($calc='average'){
$sql1 = "UPDATE `config` SET `calc_category`=1 WHERE 1";
$conn->query($sql1);
} elseif ($calc='high'){
$sql1 = "UPDATE `config` SET `calc_category`=2 WHERE 1";
$conn->query($sql1);
} else {
$sql1 = "UPDATE `config` SET `calc_category`=3 WHERE 1";
$conn->query($sql1);
}

?>

在上面的代码中,即使$calc等于'high'或'average'以外的其他值,它仍然用'calc\u category'=1更新数据库,这只在第一个'if'条件为真时发生。
我回显了$calc的值,它会根据选中的单选按钮而改变,但我不确定为什么总是首先执行“if”条件代码。
我是新来的php,sql请帮助我哪里我错了。

vsaztqbk

vsaztqbk1#

比较两个值时,必须使用“==”而不是“=”。将值附加到变量会返回真值,因此elseif部分不起作用。我希望它有用。
假用法:if($calc='average')真用法:if($calc='average')

mctunoxg

mctunoxg2#

在elseif语句中,您正在设置 $calc = 'high' . 这不是一个比较。为了让你评估这些术语是否相等,你需要使用 == 或者 === 取决于你需要多严格的比较。

if ($calc == 'average'){
$sql1 = "UPDATE `config` SET `calc_category`=1 WHERE 1";
$conn->query($sql1);
} elseif ($calc == 'high'){
$sql1 = "UPDATE `config` SET `calc_category`=2 WHERE 1";
$conn->query($sql1);
} else {
$sql1 = "UPDATE `config` SET `calc_category`=3 WHERE 1";
$conn->query($sql1);
}
gc0ot86w

gc0ot86w3#

两倍于所需。。。

if ($calc=='average'){ /****// == instead of = //*****/
     $sql1 = "UPDATE `config` SET `calc_category`=1 WHERE 1";
     $conn->query($sql1);
 } elseif ($calc=='high'){ /****// == instead of = //***/
     $sql1 = "UPDATE `config` SET `calc_category`=2 WHERE 1";
     $conn->query($sql1);
 } else {
     $sql1 = "UPDATE `config` SET `calc_category`=3 WHERE 1";
     $conn->query($sql1);
 }

同时检查where子句附近的查询。。。。它在哪里?????

相关问题