gpt4 book ai didi

php - 第二种情况在 PHP switch 语句中未触发

转载 作者:行者123 更新时间:2023-11-30 00:26:34 25 4
gpt4 key购买 nike

我正在创建一个查询 mysql 的简单表。我有调整查询的文本字段。例如,如果我将item ID放入,然后按提交,它就会选择该ID,但如果我在空白文本字段上点击提交,那么它应该给我所有数据。

这在我的第一个案例中效果很好,但我无法让第二个案例启动。如果我切换箱子上的位置,那么第一个位置的新位置现在将触发,但第二个位置不会。我不确定我在这里做错了什么。

switch (isset($_POST)) {

case (isset($_POST['ProdNo'])): // should only fire if the ProdNo field is filled and submit is hit
if (empty($_POST['ProdNo'])) { break; } // should return us to a full listing
$i=$_POST['ProdNo'];
$sql = "SELECT * from fg_inventory WHERE ProdNo LIKE '$i%'";
$result = $conn->query($sql) or die(mysqli_error());
break;


case (isset($_POST['fg_inventory_id2'])): // should only fire if the fg_inventory field is filled and submit is hit
if (empty($_POST['fg_inventory_id2'])) { break; } // should return us to a full listing
$i=$_POST['fg_inventory_id2'];
$sql = "SELECT * from fg_inventory WHERE fg_inventory_id2=$i";
$result = $conn->query($sql) or die(mysqli_error());
break;

default:

$sql = "SELECT * from fg_inventory";
$result = $conn->query($sql) or die(mysqli_error());
}

最佳答案

所以 switch 语句可能不会像你想象的那样工作......

switch($var) 会将 $var 与各种 case block 进行比较。例如,

$var = 1;
switch($var) {
case (1): // Is $var equal to 1?
echo("ONE");
break;
case (2): // Is $var equal to 2?
echo("TWO");
break;
}

这种情况将输出ONE

由于您将 switchisset 一起使用,因此您始终会传入 truefalse。您的以下 case 检查也将检查 truefalse。因此,最终您将检查 truesfalses。在这种情况下,您可能应该只使用嵌套的 if 语句。 :-)

这是 PHP 的 switch reference page .

另请注意,如果您希望一种情况转为另一种情况,只需省略 break;

关于php - 第二种情况在 PHP switch 语句中未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22826790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com