<ol class="rectangle-list">
<?php
include('dbconnect.php');
$result=mysqli_query($con,"SELECT tip_unitate,tip_id FROM tipunitate ORDER BY tip_id ASC");
while($row = mysqli_fetch_array($result))
{
$pid=$row['tip_id'];
$unitate=$row['tip_unitate'];
$count=mysqli_query($con,"SELECT COUNT(*) AS num FROM unitate WHERE tip_id='$pid'");
$rowss = mysqli_fetch_array($count);
$number=$rowss['num'];
echo "<li><a href=\"map.php?pid=".$pid."\">".$unitate."(".$number.")</a></li>";
}
mysqli_close($con);
?>
</ol>
这是我的代码。我需要的是将单个类分配给该OL中的li。有8个人。我已经看到很多关于类似问题的答案,但由于我的PHP知识不足,我自己也做不到。
答案 0 :(得分:1)
您是否考虑过使用CSS来完成手头的任务?
请查看http://www.w3schools.com/cssref/sel_nth-child.asp 这里有一个简单快捷的例子http://jsfiddle.net/2r3kxr8g/
li:nth-child(2) {
background: #d70;
padding: 9px;
}
您唯一必须记住的是,您应该通过在CSS中明确定义它们来限制您想要设置样式的元素
答案 1 :(得分:1)
如果您需要每个li
标记的唯一标识符,最简单的解决方案是将$pid
变量指定为元素的id
。像这样:
echo '<li id="pid' . $pid . '">...</li>';
然后,您可以根据其唯一ID为这些元素指定样式。例如:
<style>
#pid1 { ... }
#pid2 { ... }
...
</style>
您只需要跨多个元素共享的样式类。在这种情况下,你可以这样做:
// array keys should be the PIDs associated with the classes you wish to assign
// define this array outside your loop
$styles = array(
0 => 'style1',
8 => 'style8',
);
然后在你的循环中:
echo "<li class=\"{$styles[$pid]}\"><a href=\"map.php?pid={$pid}\">{$unitate}({$number})</a></li>";
答案 2 :(得分:0)
你为什么不这样做 echo“”。$ unitate。“(”。$ number。“)”;
$ i是一个计数器
答案 3 :(得分:0)
我可能会为此创建一个自定义函数,特别是如果有超过2或3个不同类的潜力。这样,您可以帮助维护代码的可读性并稍微划分它。
在下面的示例中,我使用$pid
作为参考点来确定要使用的类。您的实际使用案例可能有所不同。
function get_li_class( $pid ) {
switch ( $pid ) :
case 1:
return 'apple';
break;
case 2:
return 'house';
break;
case 'apple':
return 'dog';
break;
// more and more options if you'd like
default:
return ""; // or some other class
break;
endswitch;
}
while ( $row = mysqli_fetch_array($result) ) {
// your code here
$class = get_li_class($pid);
echo '<li class="' . $class . '"><a href="#">...</a></li>';
}