[英]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.