繁体   English   中英

PHP Mysql Switch / Case语句

[英]Php Mysql Switch/Case Statement

我对表单元格中的值使用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"];

并解决了它。

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

因此,您的代码如下:

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

应该:

$log_type= $data["log_type"];

如果要在值周围使用单引号,则应执行以下操作:

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

$data保存您的结果集数组。

在这一行:

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

您正在以不正确的方式访问result set ,要访问结果集的属性,只需要将它们括在用引号引起来的包含object在本例中$data )中,以下是解决该问题的正确方法:

$log_type=$data["log_type"];

将解决方案合并或封装在'

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM