我有这个查询
$people = "SELECT name FROM people";
$people = mysql_query($people) or die(mysql_error());
$row_people = mysql_fetch_assoc($people);
$totalRows_people = mysql_num_rows($people);
我可以使用像这样的while循环在无序列表中回显结果
<ul>
<?php {do { ?>
<li><?php echo $row_people['name'];?></li>
<?php } while ($row_people = mysql_fetch_assoc($people));}?>
</ul>
但是我不能使用这个,因为我的html不允许。
<ul>
<li class="first">
<a href="?name=kate">Kate</a>
<li>
<li class="second">
<a href="?name=john"><img src="john.jpg" />John</a>
<li>
<li class="third">
<a href="?name=max"><span>Max</span></a>
<li>
</ul>
我的问题是如何将从数据库检索到的名称回声到这个html中的适当位置?
谢谢你的帮助。
试试这个:
<?php
$people = "SELECT name FROM people";
$people = mysql_query($people) or die(mysql_error());
if(mysql_num_rows($people) > 0){
?>
<ul>
<?php
while ($row_people = mysql_fetch_assoc($people)){
?>
<li><?php echo htmlentities($row_people['name']);?></li>
<?php
}
?>
</ul>
<?php
}
?>
您只需要为每个"类型"的用户(假设您在用户行上有一个type属性)或基于他们的属性创建一个渲染器。例如,假设您必须根据以下属性进行筛选:
<?php
function render_simple($person) {
return '<a href="?' . $person['name'] . '">' . $person['name'] . '</a>';
}
function render_with_image($person) {
return '<a href="?' . $person['name'] . '"><img src="' . $person['image'] . '.jpg"/>' . $person['name'] . '</a>';
}
function render_special($person) {
return '<a href="?' . $person['name'] . '"><span>' . $person['name'] . '</span></a>';
}
function render_person($person) {
if ($person['image']) {
return render_with_image($person);
}
if ($person['special']) {
return render_special($person);
}
return render_simple($person);
}
$i = 0;
while ($row_people = mysql_fetch_assoc($people)){ ?>
<li class="index<?php echo ++$i; ?>">
<?php echo render_person($person); ?>
</li>
<?php
}
?>
这应该可以工作,除了类名不是first, second等,而是index1, index2等。