PHP数组和开关用例语句


PHP Array and Switch Case Statement

我的代码不起作用。它只是打印出默认的

这是php

$updatesQuery = "SELECT * FROM updates WHERE Isnote = 0";
        $rs  = mysql_query($updatesQuery) or
        die("SQL: $usersQuery)<br />".mysql_error());
        while($row = mysql_fetch_array($rs)) {
            switch ($i){
                case $row[CatID]=1:
                    $i = "kunder";
                    break;
                case $row[CatID]=2:
                    $i = "bokningar";
                    break;
                case $row[CatID]=3:
                    $i = "offerter";
                    break;
                case $row[CatID]=4:
                    $i = "leverantorer";
                    break;
                case $row[CatID]=5:
                    $i = "kalender";
                    break;
                default:
                    $i = "no work";
                    break;
            }
            echo $i;                
        }

sql查询有效。但我的输出只是默认值。"没有工作"。

我写错了什么?

打开变量,在本例中为$row['CatID']:

switch ($row['CatID']){
    case 1:
        $i = "kunder";
        break;
    case 2:
        $i = "bokningar";
        break;
    ...

看起来$i从未设置过,所以switch()语句默认为(令人惊讶的)default子句。

将代码更改为类似的内容;

        switch ($row['CatID']){
            case 1:
                $yourVar = "kunder";
                break;
        }   

switch语句查看当前变量。如果该变量恰好是数据库中的一列,则需要评估特定变量。

如果您在切换之前将$row['catID']中的数据分配给变量$i,那么您的代码就会起作用。

只是猜测

switch ($row['CatID']) {
  case 1:
    $i = "kunder";
    break;
  // And so on
}
  • 从未定义$i
  • $row[CatID]应该触发通知,因为您忘记了'
  • $row[CatID]=2设置值,这在上下文中没有多大意义
switch($row['CatID'])

然后使用案例1:、案例2:etc