使用php进行mysql查询的回声结果

时间:2011-10-02 18:36:06

标签: php mysql echo

我有这个查询

$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中的适当位置?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

试试这个:

<?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
}

?>

答案 1 :(得分:0)

您只需为每个“类型”用户创建一个渲染器(假设您在用户行上有一个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
}      
?>

这应该有效,除了第一个,第二个等等,而不是类名,你现在将拥有index1,index2等。