1

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

这是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 查询有效。但我的输出只是默认值。“没有工作”。

我写错了什么?

4

4 回答 4

7

打开你的变量,在这种情况下$row['CatID']

switch ($row['CatID']){
    case 1:
        $i = "kunder";
        break;
    case 2:
        $i = "bokningar";
        break;
    ...
于 2012-07-27T12:07:10.693 回答
2

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

将您的代码更改为这样的内容;

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

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

如果您在切换之前为变量分配$i了内部数据,您的代码就会起作用。$row['catID']

于 2012-07-27T12:06:28.087 回答
1

只是猜测

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

然后用例1:,案例2:等

于 2012-07-27T12:07:28.100 回答