使用php回显多行数据库查询

时间:2012-09-04 00:55:49

标签: php mysql twitter-bootstrap

我正在尝试制作一个显示所有人的朋友的手风琴(twitter bootstrap),我最终只创建了一个infinate循环,基本上我所要做的就是在结果中为每一行回显一个php字符串。 / p>

任何人都可以发现我在做什么愚蠢(除了不使用mysqli)?

    while ( $rowresult = mysql_fetch_assoc(mysql_query("SELECT * FROM friends WHERE id='".$user["ID"]."' ")) ) {
        $auto = "0px";
        echo '<div class="accordion-group"><div class="accordion-heading"><div class="accordion-heading">';
        echo '<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapse'. $counter . '">';       
        echo $rowresult['firstname'];
        echo ' ';
        echo $rowresult['lastname'];
        echo ', ';
        echo $rowresult['headline'];
        echo '</a></div> <div id="collapse'. $counter .'" class="accordion-body ';
        if ($counter == 0){
        echo 'in ';
        $auto = "auto";
        }
        echo 'collapse" style="height: '. $auto .'; "><div class="accordion-inner">';
        echo '<img src="'.$rowresult["pictureUrl"].'">';        
        echo '</div></div></div></div>';    
        $counter++;
    }

3 个答案:

答案 0 :(得分:2)

它不起作用,因为您一次又一次地执行相同的查询 那样做:

$res = mysql_query("SELECT * FROM friends WHERE id='".$user["ID"]."'");
while ( $rowresult = mysql_fetch_assoc($res) ) {
....
}

另外,我建议您使用MySQLiPDO

答案 1 :(得分:1)

您在每次迭代时重复查询。将mysql_query()移出循环到变量。

$q = mysql_query("SELECT * FROM friends WHERE id='".$user["ID"]."' ");
while ($rowresult = mysql_fetch_assoc($q)) {
    // ...
}

答案 2 :(得分:0)

在while循环之前放置查询。 IE

 $q=mysql_query("SELECT * FROM friends WHERE id='".$user["ID"]."' ");
 while ( $rowresult = mysql_fetch_array($q)) { 

...

但当然使用PDO ......:)