Php Mysql开关/案例声明

时间:2014-04-23 05:14:57

标签: php mysql switch-statement case

我在表格单元格中使用with语句来表示值。插入此声明之前一切都很好。我所要做的就是根据字符串值更改文本上的颜色标签,但现在Cell是空白的,这告诉我没有一个案例是真的。我怀疑如果有错误,那么语句后面的单元格也是空白的,但它们是完整的。

如果我不得不猜测,我会说字符串声明中有错误,但我不确定。

<?php
$result = mysql_query("SELECT * FROM logs ORDER BY logid DESC");
while($data = mysql_fetch_array($result))
{
                            echo '<tr>
                                <td>'.$data["logid"].'</td>
                                <td class="center">'.$data["date"].'</td>
                                <td class="center">';

                                    $log_type='.$data["log_type"].';
                                    switch ($log_type) {
                                        case "Check in":
                                            echo '<span class="label label-success">'.$data["log_type"].'</span>';
                                            break;
                                        case "Log":
                                            echo '<span class="label">'.$data["log_type"].'</span>';
                                            break;
                                        case "Sensor Event":
                                            echo '<span class="label label-important">'.$data["log_type"].'</span>';
                                            break;
                                    }

                                echo '</td>
                                <td class="center">'.$data["log_entry"].'</td>
                                <td class="center">'.$data["customer_id"].'</td>
                            </tr>';
}
?>

完整的代码块只是从mysql表中读取数据,并以漂亮的表格格式将其吐出到网站中。通过使用不同的CSS类,我可以更改标签颜色。

问题是为什么这个案例只是一个空格?

更新:对于那些阅读此内容并寻找具体答案的人,我更改了一行:

$log_type='.$data["log_type"].';

$log_type=$data["log_type"];

并修复了它。

2 个答案:

答案 0 :(得分:0)

这是一个非常明显的错误。单引号下的变量将不会被解析,这就是您所做的。使用您当前的代码,$log_type的值为.$data["log_type"]. (tested)

所以,你的代码:

$log_type= '.$data["log_type"].';

应该是:

$log_type= $data["log_type"];

如果你想在值周围加上单引号,你应该这样做:

$log_type = "'".$data["log_type"]."'";

答案 1 :(得分:0)

$data保存结果集数组。

在这一行:

$log_type='.$data["log_type"].';

您正在以incorrcet方式访问result set,要访问结果集的属性,您只需将它们用引号括起来object $data in这个案例)持有array.Below是解决它的正确方法:

$log_type=$data["log_type"];

'中汇总或附上您的解决方案:

"'".$log_type."'""'".$data["log_type"]."'"