当while循环使用PHP创建表行时,如何根据内容更改表单元格的属性
我是PHP的初学者,只知道基础知识。我想做我的第一件更高级的事情,但一直没能弄明白怎么做 我从mysql数据库中获取数据,然后创建一个html表当while循环使用PHP创建表行时,如何根据内容更改表单元格的属性,php,html,css,Php,Html,Css,我是PHP的初学者,只知道基础知识。我想做我的第一件更高级的事情,但一直没能弄明白怎么做 我从mysql数据库中获取数据,然后创建一个html表 while($row = $queryresult->fetch_assoc()) { echo "<tr><td>".$row['col1']."</td><td>".$row['col2']."</td></tr>";} while($row=$queryresult-
while($row = $queryresult->fetch_assoc()) {
echo "<tr><td>".$row['col1']."</td><td>".$row['col2']."</td></tr>";}
while($row=$queryresult->fetch_assoc()){
回显“$row['col1']”。$row['col2']”;}
我想根据单元格的内容向其添加css类。所以,如果第一行的col1是“foo”,那么我想要
如果col1在表的第2行是“bar”,那么我想要
while($row = $queryresult->fetch_assoc()) {
$classvar = '';
if ($row['col1'] == "foo") {
$classvar = 'class="foo"';
}
if ($row['col1'] == "bar") {
$classvar = 'class="bar"' ;
}
echo "<tr><td {$classvar}>{$row['col1']}</td><td>{$row['col2']}</td></tr>";
}
我试过了
if ($row['col1'] == "foo") {
$classvar = " class=foo";
} elseif ($row['col1'] == "bar") {
$classvar = " class=bar";
}
echo "<tr><td".$classvar.">";
if($row['col1']==“foo”){
$classvar=“class=foo”;
}elseif($row['col1']==“bar”){
$classvar=“class=bar”;
}
回声“;
但这会根据迭代的第一行将所有行设置为相同的内容。因此,如果第一行有col1=“foo”,那么所有行上都有$classvar=“class=foo”。如何单独评估每个表行?替换
echo "<tr><td>",$row['col1'],"</td><td>",$row['col2'],"</td></tr>";
echo“$row['col1'],”,$row['col2'],”;
到
echo“$row['col1']”和“$row['col2']”;
将测试放在while循环中
如果$row['col1']
既不是foo
也不是bar
另一个保持字符串连接易于阅读的好方法是在{$array['key']}
周围使用{}
,这样就不必一直与点连接
正如其他人提到的,类名必须位于“
或”
while($row=$queryresult->fetch_assoc()){
$classvar='';
如果($row['col1']==“foo”){
$classvar='class=“foo”';
}
如果($row['col1']==“bar”){
$classvar='class=“bar”';
}
回显“{$row['col1']}{$row['col2']}”;
}
我更喜欢模板方法:
<?php while($row = $queryresult->fetch_assoc()) { ?>
<tr>
<td class="<?=($row['col1'] == "foo") ? 'foo' : 'bar'?>"><?=html($row['col1'])?></td>
<td><?=html($row['col2'])?></td>
</tr>
<?php } ?>
正如您在上面看到的,我使用了
的组合,这是
的缩写
我还使用了三元运算符:
语句?如果为真:如果为假
根据您的情况将elseif更改为if
while($row = $queryresult->fetch_assoc()) {
if ($row['col1'] == "foo") {
$classvar = " class=foo";
}
if ($row['col1'] == "bar") {
$classvar = " class=bar";
}
echo "<tr><td",$classvar,">",$row['col1'],"</td><td>",$row['col2'],"</td></tr>";
}
while($row=$queryresult->fetch_assoc()){
如果($row['col1']==“foo”){
$classvar=“class=foo”;
}
如果($row['col1']==“bar”){
$classvar=“class=bar”;
}
回显“$row['col1'],”,$row['col2'],”;
}
您应该使用htmlspecialchars()
。看看我的答案。
function html($str){
return htmlspecialchars($str, ENT_QUOTES);
}
while($row = $queryresult->fetch_assoc()) {
if ($row['col1'] == "foo") {
$classvar = " class=foo";
}
if ($row['col1'] == "bar") {
$classvar = " class=bar";
}
echo "<tr><td",$classvar,">",$row['col1'],"</td><td>",$row['col2'],"</td></tr>";
}